CSS:不是选择器不起作用

时间:2015-11-11 20:55:53

标签: css selector

这可能是一个非常愚蠢的问题,但我无法使用:not选择器在css中工作。我想为我的页面中的所有文本着色,除非它有一个名为" nocolor"的类。这是代码,我没有看到问题:



*:not(.nocolor) {
    color: #f00;
}

<h2>Hello</h2>
<h2 class="nocolor">Hello</h2>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:3)

我对这种行为感到惊讶,但*选择器适用于所有,所以你必须注意应用于父元素(如body和html标签本身)。

您可以通过将body添加到选择器来修复它,如下所示:

body *:not(.nocolor) {
   color: red;
}

答案 1 :(得分:2)

你的选择器应该这样写:

:not(.nocolor) {
    color: #f00;
}

删除'*',这将在页面上选择所有

请参阅此处的文档:MDN

答案 2 :(得分:2)

这是因为*适用于包含body的每个元素,而.nocolor没有{{1}}类。