搜索~
字符并不容易。我正在查看一些CSS并找到了这个
.check:checked ~ .content {
}
这是什么意思?
答案 0 :(得分:1252)
~
选择器实际上是General sibling combinator(在selectors Level 4中重命名为Subsequent-sibling combinator):
一般兄弟组合器由“波浪号”(U + 007E,〜)组成 分隔两个简单选择器序列的字符。该 由两个序列表示的元素共享同一个父元素 文档树和第一个序列表示的元素 先于(不一定是立即)由...表示的元素 第二个。
考虑以下示例:
.a ~ .b {
background-color: powderblue;
}
<ul>
<li class="b">1st</li>
<li class="a">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="b">5th</li>
</ul>
.a ~ .b
匹配第4和第5个列表项,因为它们:
.b
元素.a
.a
后显示。同样,.check:checked ~ .content
会匹配.content
兄弟姐妹的所有.check:checked
元素并显示在其后面。
答案 1 :(得分:170)
答案 2 :(得分:136)
还可以检查家庭中的其他combinators并回到具体的那个。
ul li
ul > li
ul + ul
ul ~ ul
示例清单:
ul li
- 向内看 - 选择所有 li
元素放置在{{{}内1}}; 后代选择器 ul
- 向内看 - 仅选择 ul > li
的直接 li
元素;即它只会选择ul
的直接子女li
; 子选择器或子组合子选择器 ul
- 向外看 - 选择紧随ul + ul
之后的ul
;它不是向内看,而是在外面寻找紧随其后的元素; 相邻的兄弟选择器 ul
- 向外看 - 选择ul ~ ul
之后的所有ul
无关紧要,但是ul
都应该有同一个父母; 一般同级选择器 我们在这里看到的是 General Sibling Selector
答案 3 :(得分:27)
这是General sibling combinator
并在@ Salaman的答案中得到了解释。
我错过的是Adjacent sibling combinator
+
,与~
密切相关。
例子是
.a + .b {
background-color: #ff0000;
}
<ul>
<li class="a">1st</li>
<li class="b">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="a">5th</li>
</ul>
.b
.a
.a
在上面的示例中,它将标记为第二个li
但不标记为第四个。
.a + .b {
background-color: #ff0000;
}
&#13;
<ul>
<li class="a">1st</li>
<li class="b">2nd</li>
<li>3rd</li>
<li class="b">4th</li>
<li class="a">5th</li>
</ul>
&#13;
答案 4 :(得分:5)
请注意,在属性选择器(例如[attr~=value]
)中,代字号
表示属性名称为 attr 的元素,其值为以空格分隔的单词列表,其中一个正是 value 。
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors