为什么CSS:不是伪类不能按预期工作?
问题描述:
考虑下面的HTML:为什么CSS:不是伪类不能按预期工作?
<div class="a">
<div class="b">Hello</div>
</div>
<div class="c">
<div class="b">World</div>
</div>
添加红色下面的CSS颜色只有 “世界”,符合市场预期:
.c .b {
color: red;
}
但是,把下面的CSS代替colors both "Hello" and "World" in red:
:not(.a) .b {
color: red;
}
为什么?
答
答
由于:not
伪类repr esents不是由它的参数表示的元素, 你有指定要排除的元素以前的:not
选择
按照您的例子,试试这个:
div:not(.a) .b {
color: red;
}
+0
不......参数是括号内的内容 - 在这种情况下,它是'.a',而不是'div',这是您想限制选择器的内容。另请参阅我对PSL答案的评论。 – BoltClock 2013-05-07 19:57:31
使用' :not()'排除父元素是不可靠的 - 参见http://*.com/questions/7084112/css-negation-pseudo-class-not-for-parent-ancestor-elements/7084147#7084147 – BoltClock 2013-05-07 19:59:32