Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS3:Firefox不完全支持非否定伪类?_Css_Css Selectors - Fatal编程技术网

CSS3:Firefox不完全支持非否定伪类?

CSS3:Firefox不完全支持非否定伪类?,css,css-selectors,Css,Css Selectors,我试图使用CSS3:而不是规范中定义的伪类。根据报告: 否定伪类:not(X)是 一种采用简单符号的函数表示法 选择器(不包括否定) 伪类本身)作为参数。 它表示一个不存在的元素 以其论点为代表 所以我希望能够做这样的事情: p:not(.class1, .class2) 但它在Safari或Firefox中似乎不起作用,它们应该完全支持该选择器 当参数是单个选择器时,它会起作用,例如: 下面是一个显示问题的示例: 根据博客文章,作者建议您应该能够指定多个选择器作为参数 同样根据这一点,Fir

我试图使用CSS3:而不是规范中定义的伪类。根据报告:

否定伪类:not(X)是 一种采用简单符号的函数表示法 选择器(不包括否定) 伪类本身)作为参数。 它表示一个不存在的元素 以其论点为代表

所以我希望能够做这样的事情:

p:not(.class1, .class2)
但它在Safari或Firefox中似乎不起作用,它们应该完全支持该选择器

当参数是单个选择器时,它会起作用,例如:

下面是一个显示问题的示例:

根据博客文章,作者建议您应该能够指定多个选择器作为参数

同样根据这一点,Firefox、Safari和Chrome完全支持:not选择器

是我误解了规范,还是浏览器实际上只对该选择器提供了部分支持?

您可以链接它们(列出它们对我也不起作用)

Chrome10对我很有用。

在CSS中,逗号(
)分隔选择器。它本身不是选择器,因此不能在选择器内部使用。因此,取决于您是否要将规则应用于

  • .class1
    的段落和非
    .class2
    的段落
  • 既没有
    .class1
    也没有
    class2
    的段落,或
  • 没有
    .class1
    .class2
它是

顺便说一句,如果可能的话,最好避免使用
:not
,例如,在这种情况下,有一个适用于所有
p
s的通用规则(使用您想在
:not
规则中设置的属性)和一个适用于类的规则,并在必要时覆盖第一个规则的属性。

注意:

p:not(.class1), p:not(.class2) {
}

因为,它与调用
p{}
相同(当您用“,”分隔时,它表示联合)。第一个有效标签集(不带
class1
class的p标签)与第二个有效标签集(不带
class2
class的p标签)结合。

.class1、.class2
不是一个简单的选择器,根据定义
:not(X)
只接受简单的选择器作为参数。那篇博客文章是错误的。如果Firefox在一次否定中支持多个选择器,那么它就不再支持了,而且这种行为是一个错误。@BoltClock Correct-在FF3.6和FF4中尝试过,但它不起作用,所以这个家伙一定是错的,而且博客日期是2008年8月25日,当时css3还是个婴儿。p:不(.class1.class2)不起作用。这不是有效的标记。@BoltClock是的语法/代码/随便什么-我经常混淆术语。英语不是我的母语:)似乎仍然不起作用,请参阅:-我希望排除所有具有.po或.no的P标记。好的,您的第二个示例似乎达到了预期效果。
p:not(.class1):not(.class2) {
  ...  
}
p:not(.class1), p:not(.class2) {
}
p:not(.class1):not(.class2) {
}
p:not(.class1.class2) {
}
p:not(.class1), p:not(.class2) {
}