我有这个HTML -
<ul class="parent">
<li>
<div class="child-1 x">
<div class="child-2 x">test</div>
</div>
</li>
<li>
<div class="child-1 x">
<div class="child-2 x">test</div>
</div>
</li>
<li>
<div class="child-1 x">
<div class="child-2 x">test</div>
</div>
</li>
</ul>
这个CSS -
.x{
border:1px solid black;
padding: 10px;
}
.child-1:last-child{
border-color:red;
}
我尝试仅将红色边框应用于上一个child-1 div
。但它没有发生。 CSS last-child
伪类检查它是否是其直接父级内的最后一个元素,而不是整个DOM(这是我的错误理解)。
知道怎么用css做这个吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
:last-child
1 pseudo不会尊重最后声明的class
,它只跟踪父/子关系中元素的最后一个实例。
1 与
:nth-last-child(1)
相同。 :last-child伪类代表一个 元素,是其他元素的最后一个子元素。
例如,如果你喜欢
写一些像
的东西div.wrap div.blow:last-child {
/* .blow doesn't make any sense there, CSS will look up
for last div element nested inside .wrap */
}
在这种情况下,您可以尝试使用
.parent li:last-child div[class^="child-1"] {
border-color:red;
}
或者只是
.parent li:last-child div.child-1.x {
border-color:red;
}
注意:last-child
有点松散伪,因为它不会忽略该元素,如果它不是父元素的最后一个子元素,那么last-of-type
在这里选择{last type
进行操作1}} element
,无论它的DOM级别如何。
答案 2 :(得分:1)
ul li:last-child > div.child-1 {
border-color:red;
}