微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中设置的属性)和一个适用于类的那个并在必要时覆盖第一个规则的属性.

原文地址:https://www.jb51.cc/css/214879.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。