我正在尝试使用规范中定义的
CSS3:not伪类.根据
spec:
The negation pseudo-class,:not(X),is
a functional notation taking a simple
selector (excluding the negation
pseudo-class itself) as an argument.
It represents an element that is not
represented by its argument
所以我希望能够做到这样的事情:
p:not(.class1,.class2)
但它似乎不适用于Safari或Firefox,它们应该完全支持这个选择器.
当参数是单个选择器时它确实有效,例如:
以下是显示问题的示例:jsFiddle Example
p:not(.class1)
根据this博客文章,作者建议您应该能够指定多个选择器作为参数.
同样根据CSS3 SitePoint Reference,Firefox,Safari和Chrome完全支持:not selector.
我是否误解了规范,或者浏览器实际上只对这个选择器有部分支持?
解决方法
在CSS中,逗号(,)分隔选择器.它不是选择器本身,因此不能在选择器内使用.因此,取决于您是否要应用规则
>不是.class1的段落和不是.class2的段落,
>既没有.class1也没有class2或者的段落
>没有.class1和.class2的段落
它的
p:not(.class1),p:not(.class2) { }
要么
p:not(.class1):not(.class2) { }
要么
p:not(.class1.class2) { }
顺便说一句,恕我直言,最好避免:如果可能的话,例如,在这种情况下,有一个适用于所有ps的一般规则(具有你想要在:notrule中设置的属性)和一个适用于类的那个并在必要时覆盖第一个规则的属性.