使用CSS选择倒数第二个元素


135

我已经知道:last-child。但是有没有选择div的方法:

<div id="container">
 <div>a</div>
 <div>b</div>
 <div>SELECT THIS</div> <!-- THIS -->
 <div>c</div>
</div>

注意:没有jQuery,只有CSS


对于倒数第二个孩子为何如此重要,确实有一些逻辑吗?
David Tang

是的,我需要同时选择倒数第二个和倒数第二个以应用某些样式
动态的

您为什么不能只在最后一个div的第二个班放课
Daveo

3
“为什么不能只将一个类放在最后一个div的第二个上”:也许,如果您要对正在生成的内容进行样式设置,而又没有(轻松)访问权,则不能在第二个div上添加一个类?
亨里克

Answers:


271

在CSS3中,您可以:

:nth-last-child(2)

请参阅:https//developer.mozilla.org/en-US/docs/Web/CSS/nth-last-child

倒数第二个浏览器支持:

  • 铬2
  • Firefox 3.5
  • Opera 9.5、10
  • Safari 3.1、4
  • Internet Explorer 9

1
除非您可以将一个类附加到要选择的div上,否则这可能是可行的方法。正如Frosty所述,较旧的浏览器或IE不支持CSS3。如果您担心跨浏览器的可计算性,那么Jquery是更好的选择。
Thomas

这是链接文章的复制/粘贴...编辑的答案,谢谢。
Frosty Z'3

1
css中的解决方案:#container>:nth-​​last-child(2){background:red;}请检查此codepen以实时查看:codepen.io/marc_dahan/pen/JyxObz
marcdahan

既然我们不需要支持较旧的IE,那么此答案将非常有效。老实说,如果人们仍在使用IE 8及更低版本,他们就不应该拥有漂亮的东西。
Stender

59

注意:发布此答案是因为OP稍后在评论中指出他需要选择最后两个元素,而不仅仅是倒数第二个。


:nth-child实际上,CSS3选择器比您想象的要强大!

例如,这将选择的最后2个元素#container

#container :nth-last-child(-n+2) {}

但这仅仅是美好友谊的开始。


很好,我的答案只选择了最后一个孩子减1。对此一无所知。+'d
rsplak
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.