CSS3:不是完全支持Firefox的否定伪类吗?

前端之家收集整理的这篇文章主要介绍了CSS3:不是完全支持Firefox的否定伪类吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用规范中定义的 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中设置的属性)和一个适用于类的那个并在必要时覆盖第一个规则的属性.

猜你在找的CSS相关文章