如果我有一個列表:通過CSS選擇給定元素的後續和前面的元素?
<ul>
<li>item</li>
<li class="selected">item</li>
<li>item</li>
<li>item</li>
</ul>
是否有可能選擇通過CSS這個列表中的第三和第四的項目?更一般地說,在.selected
項目之前/之後出現的所有項目?
如果我有一個列表:通過CSS選擇給定元素的後續和前面的元素?
<ul>
<li>item</li>
<li class="selected">item</li>
<li>item</li>
<li>item</li>
</ul>
是否有可能選擇通過CSS這個列表中的第三和第四的項目?更一般地說,在.selected
項目之前/之後出現的所有項目?
要選擇後續元素,您可以使用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;
}
[給此閱讀](http://code.tutsplus.com/tutorials/the-30-css-selectors-you-must-memorize--net-16048)。你所指的是第n個孩子選擇器。 – GreatBlakes
除了之前的兄弟姐妹選擇,您幾乎可以完成所有這些操作。 – j08691