如果我有一个清单:
<ul>
<li>item</li>
<li class="selected">item</li>
<li>item</li>
<li>item</li>
</ul>
是否可以通过CSS选择此列表中的第3和第4项?更一般地说,.selected
项之后/之前的所有项目?
答案 0 :(得分:3)
要选择后续元素,您可以使用general sibling combinator, ~
。
尽管无法选择以前的兄弟元素,但您可以通过设置开头的所有元素来解决这个问题,然后通过选择后续元素来覆盖样式。
这会将所有元素的颜色(.selected
除外)设置为红色。然后它将覆盖该样式并使后续元素变为蓝色。
ul li:not(.selected) {
color:red;
}
ul .selected ~ li {
color:blue;
}
自:not()
isn't supported in IE8起,您还可以使用以下内容:
ul li {
color:red;
}
.selected {
color:black;
}
ul .selected ~ li {
color:blue;
}
答案 1 :(得分:1)