I found a way to style all previous sibling elements (as opposed to ~
), depending on your needs.
Suppose you have a list of links, and when hovering over one of the links, all previous links should turn red. You can do this:
/* 默認(rèn)鏈接顏色為藍(lán)色 */ .parent a { color: blue; } /* 先前的兄弟元素應(yīng)為紅色 */ .parent:hover a { color: red; } .parent a:hover, .parent a:hover ~ a { color: blue; }
<div class="parent"> <a href="#">鏈接</a> <a href="#">鏈接</a> <a href="#">鏈接</a> <a href="#">鏈接</a> <a href="#">鏈接</a> </div>
No, there is no "previous sibling selector".
Relevantly, ~
is used for general successor sibling selectors (meaning the element is after this element, but not necessarily immediately after it), and is a CSS3 selector.
is used for the next sibling selector, which is CSS2.1.
See Adjacent Sibling Selectors from Selectors Level 3 and ## from Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification #5.7 Adjacent sibling selector.