我想在ul
中选择第三个元素,前提是它不是ul
中的最后一个元素。
样本1:
<ul>
<li>Home</li>
<li>Cat 1</li>
<li>Subcat 1</li>
<li>Product</li>
</ul>
样本2:
<ul>
<li>Home</li>
<li>Cat 1</li>
<li>Product</li>
</ul>
我想要一个CSS选择器,对于样本1,选择带有“Subcat 1”的li
,对于样本2,不选择任何东西。
ul > li:nth-child(3)
适用于示例1,但也会匹配示例2中的“Product”li,我不希望这样做。
在这种情况下,我无法修改HTML。
答案 0 :(得分:9)
你可以使用:nth-child:不能达到你所需要的。这是一个例子。
ul li:nth-child(3):not(:last-child) {
color: red;
}
<ul class="sample1">
<li>Home</li>
<li>Cat 1</li>
<li>Subcat 1</li>
<li>Product</li>
</ul>
<ul class="sample2">
<li>Home</li>
<li>Cat 1</li>
<li>Product</li>
</ul>
答案 1 :(得分:2)
这里的经典CSS方法,不使用:not
(有时可能很棘手),首先给出一般规则,然后用特殊情况覆盖它。
ul > li:nth-child(3) { color: red; }
ul > li:last-child { color: inherit; }
我想要一个CSS选择器,
如果这很重要,您需要使用:not
。
答案 2 :(得分:0)
答案 3 :(得分:0)
ul > li:nth-child(3):not(:last-child), ul > li:nth-child(2):not(:last-child) {
color: red;
}