css - ">"(大于号)CSS 选择器是什么意思?

标签 css css-selectors

例如:

div > p.some_class {
  /* Some declarations */
}

> 符号到底是什么意思?

最佳答案

>child combinator ,有时被错误地称为直接后代组合子。1

这意味着选择器 div > p.some_class 只匹配 .some_class直接嵌套在 div< 中的段落,而不是嵌套在其中的任何段落。这意味着匹配 div > p.some_class 的每个元素也必然匹配 div p.some_classdescendant combinator (空间),所以这两者经常被混淆是可以理解的。

比较子组合器和后代组合器的图示:

div > p.some_class { 
    background: yellow;
}

div p.some_class { 
    color: red;
}
<div>
    <p class="some_class">Some text here</p>     <!-- [1] div > p.some_class, div p.some_class -->
    <blockquote>
        <p class="some_class">More text here</p> <!-- [2] div p.some_class -->
    </blockquote>
</div>

哪些元素与哪些选择器匹配?

  1. 同时匹配 div > p.some_classdiv p.some_class
    p.some_class 直接位于 div 内部,因此在两个元素之间建立了父子关系。由于“child”是“后代”的一种类型,因此根据定义,任何子元素也是后代。因此,这两个规则都适用。

  2. 只匹配div p.some_class
    p.some_class 包含在 div 中的 blockquote 中,而不是 div 本身。尽管此 p.some_classdiv 的后代,但它不是子代;这是一个孙子。因此,仅应用其选择器中具有后代组合子的规则。


1 许多人更进一步称它为“直接子元素”或“直接子元素”,但这完全没有必要(而且对我来说非常烦人),因为子元素 反正根据定义是直接的,所以它们的意思完全一样。没有所谓的“间接 child ”。

关于css - ">"(大于号)CSS 选择器是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3225891/

相关文章:

html - 为什么只有当我在 iframe 上移动鼠标时我的 CSS 动画才流畅?

html - CSS 过渡动画内容重叠

html - 文本框比其所在的列大小大 100%

选择器内的 CSS 正则表达式

html - 选择列表的 CSS 样式输入 [类型 ="??"]

javascript - 当使用相同类的每个后续元素也是第一个子元素时,如何使用特定类选择页面上的第一个元素?

html - 为什么我在 bootstrap 中的一个专栏无法正常运行?

html - 文本溢出 : ellipsis fighting with direction: rtl

css - 如何定位以数字开头的 CSS 类名

CSS 全局 :nth-of-type selector (:nth-of-class)