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

父/祖先元素的CSS否定伪类:not()

刘焱
2023-03-14
问题内容

这让我发疯:

HTML:

<div><h1>Hello World!</h1></div>

CSS:

*:not(div) h1 { color: #900; }

这不是读到“选择所有h1祖先不是div元素的元素吗?”。因此,“ Hello World!” 不应显示为红色,但仍然是。

对于上述标记,添加子组合器的工作原理是:

*:not(div) > h1 { color: #900; }

但是,h1如果它不是div元素的子元素,则不会影响元素。例如:

<div><article><h1>Hello World!</h1></article></div>

这就是为什么我想将h1元素表示为元素的后代而不是子div元素。任何人?


问题答案:

这不是读到“选择所有h1祖先不是div元素的元素吗?”。

是的 但是在一个典型的HTML文档中, 每个 h1人至少都有两个不是div元素的祖先,而这些祖先就是bodyand html

这是尝试使用:not()以下方法过滤祖先的问题:只是无法可靠地工作,尤其是当:not()不能被其他选择器(例如类型选择器或类选择器)限定时.foo:not(div)。只需将样式应用于所有h1元素并用覆盖它们,您将拥有更加轻松的时间div h1

在选择器4中,:not()已进行增强,可以接受包含组合器(包括后代组合器)的完整复杂选择器。这是否会在快速配置文件来实现的(因而CSS)仍有待检验和证实,但一旦得以实施,那么你_将_可以使用它来排除某些祖先元素。由于选择器的工作方式,必须对元素本身(而不是祖先)进行取反才能可靠地工作,因此语法看起来会有些不同:

h1:not(div h1) { color: #900; }

任何熟悉jQuery的人都会很快指出,该选择器现在可以在jQuery中使用。这是选择器3:not()与jQuery之间的众多差异之一,选择:not()器4试图纠正这一差异。



 类似资料:
  • 问题内容: 这让我发疯: HTML: CSS: 这不是读到“选择所有祖先不是元素的元素吗?”。因此,“ Hello World!” 不应显示为红色,但仍然是。 对于上述标记,添加子组合器的工作原理是: 但是,如果它不是元素的子元素,则不会影响元素。例如: 这就是为什么我想将元素表示为元素的后代而不是子元素。任何人? 问题答案: 这不是读到“选择所有祖先不是元素的元素吗?”。 是的 但是在典型的HT

  • 问题内容: 我知道这是在黑暗中拍摄的,但是有没有办法仅使用CSS,CSS2,没有jquery,没有javascript来选择和设置元素祖先的样式?我已经遍历了选择器,但是发布了它,以防万一我错过了一些东西或者有一个聪明的解决方法。 例如,假设我有一个嵌套在div中的类名称为“ test”的表。是否有某种: 问题答案: CSS2或CSS3中没有父选择器之类的东西。实际上,可能永远不会存在,因为一旦开

  • 主要内容:1. ::after,2. ::before,3. ::first-letter,4. ::first-line,5. ::selection,6. ::placeholder伪元素是一个附加在选择器末尾的关键词,通过伪元素您不需要借助元素的 ID 或 class 属性就可以对被选择元素的特定部分定义样式。例如通过伪元素您可以设置段落中第一个字母的样式,或者在元素之前、之后插入一些内容等等。 在 CSS1 和 CSS2 中,伪元素的使用与伪类相同,都是使一个冒号 与选择器相连。但在 C

  • CSS伪元素是用来添加一些选择器的特殊效果。 语法 伪元素的语法:selector:pseudo-element {property:value;} CSS类也可以使用伪元素:selector.class:pseudo-element {property:value;} :first-line 伪元素 "first-line" 伪元素用于向文本的首行设置特殊样式。 在下面的例子中,浏览器会根据 "

  • 在纯JavaScript中,如何找到最接近具有特定类的树的元素的祖先?例如,在这样的树中: 然后我想要,如果我在上尝试这个并搜索。

  • 问题内容: 我正在构建React组件。正如React背后的一位专家在本次精彩的演讲中所建议的那样,我已经在组件中添加了CSS内联。我一直在努力寻找一种方法来内联添加CSS伪类,就像在演示文稿中名为“ :: after”的幻灯片上一样。不幸的是,我不仅需要添加该属性,还需要添加该属性。幻灯片显示了如何通过添加内容,但是如何添加其他属性? 问题答案: 得到了@Vjeux在React团队的回复: 普通H