当前位置: 首页 > 面试题库 >

:not()否定接受子代选择器

皮嘉德
2023-03-14
问题内容

我一直在使用:not()伪类来设置样式,而无需使用第二个不必要的声明来覆盖它来撤消第一个声明,但是现在我遇到了一个奇怪的行为,其中Safari接受了内的后代选择器:not(),但Chrome却没有。

我用过类似的东西a:not(.blue a)

我搜索了答案,但我仍然不完全了解原因。
规范确实允许后代选择器吗?

这是一个演示:

a:not(.blue a) {
  color: red;
}



<div><a>this one should be in red</a></div>
<div class="blue"><a>this one shouldn't</a></div>

问题答案:

在选择器级别3中,答案为否。该:not()表示法仅接受
简单的选择器

6.6.7。 否定伪类

否定伪类,:not(X)是一种功能符号,它以 简单的选择器 (不包括否定伪类本身)作为参数。它代表一个其参数未表示的元素。

什么是简单选择器?

从选择器语法:

一个简单的选择器可以是类型选择器,通用选择器,属性选择器,类选择器,ID选择器或伪类。

与后代选择器无关。

但是 ,在选择器级别4中,:not()接受
复杂的选择器 ,其中将包括后代组合器。浏览器对该规范的支持仍然很薄弱。



 类似资料:
  • 问题内容: 我对这两个选择器有些困惑。 后代 选择器是否: 选择所有内它是否是一个即时descedent?因此,如果处于另一个之内,它将仍然被选中? 然后是 子 选择器: 有什么不同?一个孩子意味着 直系 孩子吗?例如。 与 是否都会被选中? 问题答案: 只要想一想英语中的“孩子”和“后代”是什么意思: 我的女儿既是我的孩子,又是我的后代 我的孙女不是我的孩子,但她是我的后代。

  • 子选择器(E > F),就是只选择元素的直接后代(即子元素),而不选择其它后代的选择器。这就是子选择器与后代选择器的区别。子选择器中,> 两侧的空白符是可选的。 在上一节导航菜单的例子中,假如我们希望第一级列表项的链接文本的字体加粗显示。因为第一级列表项是 ul 的子元素,这时,就可以使用子选择器来实现。如: ul > li a { font-weight: bold;}

  • 问题内容: 我有以下HTML 以及以下样式: 由于某种原因,我不了解该样式已应用于 “子内容1” 和 “标题” 。 我认为样式上的选择器仅适用于div的第一个直接子类,该子类具有“ section”类。如何更改选择器以获得我想要的? 问题答案: 您所发布的字面意思是“查找分区div内且是其父级的第一个孩子的所有div。” 该子项包含一个与该描述匹配的标签。 我不清楚您是否要同时兼任主要div的两个

  • not pseudo类的特定性是它的参数的特定性。与其他伪类不同,not()伪类不添加选择器的特定性。 还是我漏掉了什么?

  • 否定伪类选择器用来选择不满足某些条件的元素。 表 2-6 结构伪类选择器 选择器 功能描述 版本 E:not(selector) 选择未被选择器selector所选中,且类型为E的元素 3 如果想对某个结构元素使用样式,但是又想排除这个结构下的某些子结构时,否定伪类选择器就非常有用,它可以过滤掉某些内容。 如,在美化表单时,常常会给表单中所有的input添加一个边框,而单选按钮添加边框后就非常难看

  • 问题内容: 无论如何,LESS是否在其输出中应用直接子选择器(>)? 以我的style.less,我想写一些类似的东西: 并让LESS生成如下内容: 问题答案: 更新 实际上,原始问题中的代码可以正常工作。您可以坚持使用子选择器。 找到了答案。 请注意“>”和“。”之间缺少空格,否则它将无法正常工作。