我如何使用CSS3选择器选择除最后一个孩子以外的所有孩子?
例如,要只得到最后一个孩子将是div:nth-last-child(1)
。
我如何使用CSS3选择器选择除最后一个孩子以外的所有孩子?
例如,要只得到最后一个孩子将是div:nth-last-child(1)
。
Answers:
您可以使用否定伪类:not()
对:last-child
伪类。被介绍为CSS Selectors Level 3,它在IE8或更低版本中不起作用:
:not(:last-child) { /* styles */ }
div
在OP示例中)
&:not(:last-child) { /* styles * }
在要影响的元素内部使用。
您可以将样式应用于所有div,然后使用:last-child重新初始化最后一个样式:
例如在CSS中:
.yourclass{
border: 1px solid blue;
}
.yourclass:last-child{
border: 0;
}
或在SCSS中:
.yourclass{
border: 1px solid rgba(255, 255, 255, 1);
&:last-child{
border: 0;
}
}
Nick Craver的解决方案有效,但您也可以使用以下方法:
:nth-last-child(n+2) { /* Your code here */ }
CSS Tricks的Chris Coyier为此做了一个不错的:nth测试人员。
:not
伪是非常昂贵的。因此,尝试尽可能避免它是一个好主意。
将Nick Craaver的解决方案与selectivizr结合使用可实现跨浏览器解决方案(IE6 +)
从最后查找元素,使用
<style>
ul li:nth-last-of-type(3n){ color:#a94442} /**/
</style>
.nav-menu li:not(:last-child){
// write some style here
}
此代码应将样式应用于所有