当前位置:  开发笔记 > 前端 > 正文

CSS:不是伪类不工作

如何解决《CSS:不是伪类不工作》经验,为你挑选了1个好方法。

我正在学习:not()伪类,它没有按预期工作.

我想把所有文字的颜色都换成红色.mind.由于某种原因,这不会阻止.mind元素变红.

:not(.mind) {
  color: red
}
One
Two
Three
One
Two
Three
One
mind
Three

First paragraph



1> Michael_B..:

记住这一点:

:not() 相当于 *:not()

:not()伪类没有前缀的选择器时,暗示了一个通用选择器:

6.2.通用选择器

如果由*(即没有名称空间前缀)表示的通用选择器不是简单选择器序列序列的唯一组件或者紧跟着伪元素,则* 可以省略并且隐含通用选择器的存在.

因此,你有这样的规则:

:not(.mind) {
  color: red
}

...说是将红色应用于除了具有类的元素之外的所有元素mind.

好吧,除了在这种情况下,该color属性是可继承的,所以即使红色不应用到.mind元素,它仍然通过继承从得到的红色 .parent元素.

这是浏览器正在做的事情:

在此输入图像描述

测试此行为的一种快速方法是使用border属性,该属性不可继承.

在下面的示例中,使用选择器,您会注意到边框未应用.mind,并且您的选择器按预期工作:

:not(.mind) {
  color: red;
  border-bottom: 1px dashed black;
}
One
Two
Three
One
Two
Three
One
mind
Three

First paragraph

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有