为什么disconnectAfterWriting()
选择器在这种情况下根本不起作用:
:not
例如:
a {
color:red;
}
div a:not(.special a) {
color: green;
}
答案 0 :(得分:1)
special
是div
而非anchor
的等级。
更改css,如:
div:not(.special) a{
color: green;
}
<强> Fiddle 强>
修改强>
如果您想要除.special
以外的所有链接绿色,请执行以下操作:
a {
color:green;
}
.special a{
color: red;
}
<强> Updated Fiddle 强>
答案 1 :(得分:1)
:not()
目前不允许组合器或任何多个简单选择器(例如.special
或a
)作为参数。未来的规范将展开:not()
以接受任意数量的复杂选择器,一旦浏览器支持它,您的选择器div a:not(.special a)
将完全按预期工作。
与此同时,无法为&#34; a
元素编写一个没有.special
祖先元素的选择器。&#34;您需要override并在规则中添加一个.special a
选择器,以适用于a
元素:
a, .special a {
color:red;
}
div a {
color: green;
}
.special a
的额外特异性将确保它覆盖div a
,但如果特异性存在问题,则需要重新排列规则集。
答案 2 :(得分:1)
为什么css
:not
在某些情况下不起作用?div a:not(.special a) { color: green }
因为否定伪类(:not
)仅将简单选择器作为参数。
您的论据(.special a)
代表后代选择器,但不符合条件。
6.6.7. The negation pseudo-class
否定伪类
:not(X)
是一个功能符号 一个简单的选择器(不包括否定伪类本身)作为 论点。它表示一个未由其表示的元素 参数。
什么是简单的选择器?
一个简单的选择器是类型选择器,通用选择器, 属性选择器,类选择器, ID选择器或伪类。