我正在寻找一个CSS选择器,让我选择列表的倒数第二个孩子。

<ul>
     <li>1</li>
     <li>2</li>
     <li>3</li>
     <li>4</li>
     <li>5</li> <!-- select the pre last item dynamically no matter how long this list is -->
     <li>6</li>
</ul>

静态方法:

ul li:nth-child(5)

动态的方法:

ul li:last-child(-1)

当然这并不能证明,而且第n -last-child似乎也没有提供一个动态的方法。我可以退回到javascript,但我想知道是否有一种css方式我忽略了


你可以使用:n -last-child();事实上,除了:nth-last-of-type()我不知道你还可以用什么。我不确定你说的“动态”是什么意思,但如果你的意思是当更多的子元素被添加到列表中时,这种风格是否适用于新的倒数第二个子元素,是的,它会。互动的小提琴。

ul li:nth-last-child(2)

除非您可以在服务器端用类标记该元素,否则最好使用jQuery。

jQuery(document).ready(function () {
    $count = jQuery("ul li").size() - 1;
    alert($count);
    jQuery("ul li:nth-child("+$count+")").css("color","red");
});