【发布时间】:2012-06-02 16:01:23
【问题描述】:
搜索~ 字符并不容易。我正在查看一些 CSS 并找到了这个
.check:checked ~ .content {
}
什么意思?
【问题讨论】:
标签: css css-selectors
搜索~ 字符并不容易。我正在查看一些 CSS 并找到了这个
.check:checked ~ .content {
}
什么意思?
【问题讨论】:
标签: css css-selectors
【讨论】:
~ 选择器实际上是 General sibling combinator(在 selectors Level 4 中重命名为 Subsequent-sibling 组合器):
一般的兄弟组合子由“波浪号”(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 的兄弟元素并出现在它之后。
【讨论】:
<body> 后更改其字体大小,只是因为最后一个是<div class=reset-font>。 @HerrSerker 是正确的,但(IMO)该句子的措辞不正确。
@card-prefix-cls: ~"@{css-prefix}card";,我在less style文件中看到了~的波浪符号,是什么意思?
它是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 之后在上面的示例中,它将标记为第 2 个 li 而不是第 4 个。
.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>
【讨论】:
很高兴也检查一下家庭中的另一个combinators 并回到这个特定的。
ul liul > liul + ul ul ~ ul示例清单:
ul li - 查看内部 - 选择所有放置在ul 内(任何位置)的li 元素; 后代选择器
ul > li - 往里看 - 选择仅直接 li 的ul 元素;即它只会选择ul 的直接子代li; 子选择器或子组合器选择器
ul + ul - 向外看 - 选择紧跟在ul 之后的ul;它不是向内看,而是向外寻找紧随其后的元素; 相邻兄弟选择器
ul ~ ul - 往外看 - 选择ul 后面的所有ul 并不重要,但ul 都应该有同一个父母; 通用兄弟选择器
我们在这里看到的是General Sibling Selector
【讨论】:
请注意,在属性选择器(例如,[attr~=value])中,波浪号
表示属性名称为 attr 的元素,其值是以空格分隔的单词列表,其中一个恰好是 value。
https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors
【讨论】: