gpt4 book ai didi

css - 使用特定类设置 div 的最后一个子项的样式

转载 作者:行者123 更新时间:2023-11-28 11:24:14 25 4
gpt4 key购买 nike

我有两个类为“wrapper”的DIV。我想为它们设置一般样式,并为最后一个设置特殊样式:

<div class="cont">   

<span class="help">
<div class="wrapper">aaaa</div>
</span>


<span class="help">
<div class="wrapper">bbbbb</div>
</span>

</div>

(在我的真实示例中,我在 span 中有多个 div,所以我需要针对这个特定的类)

我尝试了各种 CSS 规则:

div.wrapper {  background:green;   }
div.wrapper:last-child{ background:red; }

div > span > div.wrapper { background:green; }
div > span > div.wrapper:last-child{ background:red; }

div .wrapper { background:green; }
div .wrapper:last-child{ background:red; }

没有,工作,甚至没有:

div div {  background:green;   }
div div:last-of-type { background:red; }

它总是让一切都变成红色,就好像每个 DIV 都是最后一个 child 。

最佳答案

:last-child 是相对于父级的,所以这里:

<div class="cont">   
<span class="help">
<div class="wrapper">aaaa</div>
</span>

<span class="help">
<div class="wrapper">bbbbb</div>
</span>
</div>

.wrapper带文字 aaaa:last-child第一个 <span>与类 .help ,第二个 .wrapper带文字 bbbbb也是:last-child第二个<span>与类 .help .

您需要申请 :last-child选择器到 .help相反,它将选择最后一个 .help , 然后使用 descendantchild选择器以 .wrapper 为目标里面:

.help:last-child > .wrapper

如果你也可以有多个.wrapper内单.help而你只想选择最后一个,那么它将是:

.help:last-child > .wrapper:last-child

这是一个例子:

body {
font-family: monospace;
font-size: 16px;
}

.cont {
border: 3px solid #000;
margin: 0 0 3px;
}

.help + .help {
margin: 3px 0 0;
}

.wrapper {
background: #F0F;
padding: 1px 6px;
}

.help:last-child > .wrapper:last-child {
background: #FF0;
}
<div class="cont"> 
<div class="help">
<div class="wrapper">AAA</div>
</div>

<div class="help">
<div class="wrapper">BBB</div>
</div>
</div>

<div class="cont">
<div class="help">
<div class="wrapper">CCC</div>
</div>

<div class="help">
<div class="wrapper">DDD</div>
</div>

<div class="help">
<div class="wrapper">EEE 1</div>
<div class="wrapper">EEE 2</div>
<div class="wrapper">EEE 3</div>
</div>
</div>

正如您在评论中指出的那样,如果 .cont 中的最后一个元素不是 .help ,但是上一个是,这个(上一个)不会被选中。

最好的选择是使用 :nth-last-child( <nth> [ of <selector># ]? ) :

.help:nth-last-child(1 of .help) > .wrapper:last-child

但支持Selectors Level 4仍然很低......

具有良好支持的替代方法是使用 :last-of-type ,但它有一个限制:现在,您用于 .help 的元素必须与其他用作 .cont 的子代(直系后代)的不同:

body {
font-family: monospace;
font-size: 16px;
}

.cont {
border: 3px solid #000;
margin: 0 0 3px;
}

.help + .help {
margin: 3px 0 0;
}

.foo {
display: block;
background: #0FF;
margin: 3px 0 0;
padding: 1px 6px;
}

.wrapper {
background: #F0F;
padding: 1px 6px;
}

.help:last-of-type > .wrapper:last-child {
background: #FF0;
}
<div class="cont"> 
<div class="help">
<div class="wrapper">CCC</div>
</div>

<div class="help">
<div class="wrapper">DDD</div>
</div>

<div class="help">
<div class="wrapper">EEE 1</div>
<div class="wrapper">EEE 2</div>
<div class="wrapper">EEE 3</div>
</div>

<!-- Note I'm using a <span> here -->
<span class="foo">Hi there.</div>
</div>

关于css - 使用特定类设置 div 的最后一个子项的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com