Searching for the ~
character isn't easy. I was looking over some CSS and found this
.check:checked ~ .content {
}
What does it mean?
The ~
selector is in fact the subsequent-sibling combinator (previously called general sibling combinator until 2017):
The subsequent-sibling combinator is made of the "tilde" (U+007E, ~) character that separates two sequences of simple selectors. The elements represented by the two sequences share the same parent in the document tree and the element represented by the first sequence precedes (not necessarily immediately) the element represented by the second one.
Consider the following example:
.a ~ .b { background-color: powderblue; }
.a ~ .b
matches the 4th and 5th list item because they:
Are .b elements
Are siblings of .a
Appear after .a in HTML source order.
Likewise, .check:checked ~ .content
matches all .content
elements that are siblings of .check:checked
and appear after it.
Good to also check the other combinators in the family and to get back to what is this specific one.
ul li
ul > li
ul + ul
ul ~ ul
Example checklist:
ul li - Looking inside - Selects all the li elements placed (anywhere) inside the ul; Descendant combinator
ul > li - Looking inside - Selects only the direct li elements of ul; i.e. it will only select direct children li of ul; Child combinator
ul + ul - Looking outside - Selects the ul immediately following the ul; It is not looking inside, but looking outside for the immediately following element; Adjacent sibling combinator / Next-sibling combinator
ul ~ ul - Looking outside - Selects all the following ul's, but both ul's should be having the same parent; General sibling combinator / Subsequent-sibling combinator
The one we are looking at here is the General sibling combinator / Subsequent-sibling combinator
This post is marked obsolete because the content is out of date. It is not currently accepting new interactions.
General sibling combinator
The general sibling combinator selector is very similar to the adjacent sibling combinator selector. The difference is that the element being selected doesn't need to immediately succeed the first element, but can appear anywhere after it.
Success story sharing
<body>
after it is rendered only because the last is<div class=reset-font>
. @HerrSerker is correct but (IMO) the sentence is incorrectly phrased.@card-prefix-cls: ~"@{css-prefix}card";
, I have seen the tilde symbol of ~ in less style file, what does it mean?