小编典典

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

all

例如:

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

>标志的具体含义是什么?


阅读 122

收藏
2022-03-13

共1个答案

小编典典

>子组合器,有时被错误地称为直系后代组合器。1

这意味着选择器div > p.some_class只匹配
直接*.some_class嵌套在a中的段落,而不匹配任何进一步嵌套的段落。这意味着每个匹配的元素也必然与后代组合符(空格)匹配,因此这两者经常混淆是可以理解的。 *div``div > p.some_class``div p.some_class

将子组合器与后代组合器进行比较的插图:

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
    Thisp.some_class直接位于
    内部div,因此在两个元素之间建立了父子关系。由于“child”是“descendant”的一种,因此任何子元素根据定义也是后代。因此,两个规则都适用。

  2. 仅匹配 this 由div p.some_class
    p.some_class的 a 包含blockquotediv而不是div本身。虽然这p.some_class
    的后代div,但它不是孩子;这是一个孙子。因此,仅应用在其选择器中具有后代组合器的规则。


1 许多人更进一步称其为“直接子元素”或“直接子元素”,但这完全没有必要(而且对我来说非常烦人),因为子元素无论如何 定义 都是直接
__
的,所以它们的含义完全相同。 没有所谓的“间接孩子”。

2022-03-13