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


Answers:


672

>子组合器,有时会误称为直接后代组合器。1个

这意味着选择器div > p.some_class仅选择直接.some_class嵌套在内div段落,而不选择嵌套的任何段落。

插图:

<div>
    <p class="some_class">Some text here</p>     <!-- Selected [1] -->
    <blockquote>
        <p class="some_class">More text here</p> <!-- Not selected [2] -->
    </blockquote>
</div>

选择了什么,没有选择什么:

  1. 选择
    p.some_class直接位于内部的div,因此在这两个元素之间建立了父子关系。

  2. 没有选择
    p.some_class是由包含blockquotediv,而不是div本身。尽管这p.some_class是的后代div,但它不是孩子。是孙子

    因此,虽然div > p.some_class不匹配此元素,但div p.some_class将使用后代组合器


1 许多人甚至将其称为“直子”或“直子”,但这是完全没有必要的(对我来说是令人讨厌的),因为从定义上来说,子元素始终是直接,因此它们的含义完全相同。没有所谓的“间接孩子”。


2
+1真的叫子选择器吗?如果是这样,那将是非常令人误解的。我以为#something a会是儿童选择者。
亚历克斯

2
@alex:是的 :) #something a可能意味着a是(或#something不考虑嵌套深度)的孙或曾孙。
BoltClock

12
@alex,它称为子组合器,该空间称为后代组合器
robertc 2011年

33
当某人是其祖父母的孩子时,我们正在处理一个真正令人讨厌的乱伦实例。幸运的是,这在HTML中是不可能的。
昆汀2014年

8
为了清楚起见,我没有听到任何外行将他们的孩子称为直接孩子。
BoltClock

41

> (大于号)是CSS组合器。

组合器可以解释选择器之间的关系。

一个CSS选择器可以包含多个简单选择器。在简单的选择器之间,我们可以包含一个组合器。

CSS3中有四种不同的组合器:

  1. 后代选择器(空格)
  2. 子选择器(>)
  3. 相邻的兄弟选择器(+)
  4. 一般同级选择器(〜)

注意: <在CSS选择器中无效。

在此处输入图片说明

例如:

<!DOCTYPE html>
<html>
<head>
<style>
div > p {
    background-color: yellow;
}
</style>
</head>
<body>

<div>
  <p>Paragraph 1 in the div.</p>
  <p>Paragraph 2 in the div.</p>
  <span><p>Paragraph 3 in the div.</p></span> <!-- not Child but Descendant -->
</div>

<p>Paragraph 4. Not in a div.</p>
<p>Paragraph 5. Not in a div.</p>

</body>
</html>

输出:

在此处输入图片说明

有关CSS组合器的更多信息



@premraj感谢您对父子css选择器的出色解释!
YCode

那么,当您得到类似.entry-content > * {"code" }的后跟是.entry-content {"other code" }什么意思?不能.entry-content > *涵盖所有的孩子entry-content吗?
YCode

14

正如其他人提到的,它是一个子选择器。这是适当的链接。

http://www.w3.org/TR/CSS2/selector.html#child-selectors


非常感谢您的链接!我在那里也发现了“相邻的兄弟选择器”。
米莎·莫罗什科

您会在Sitepoint上找到浏览器支持。如果它对您的项目很重要,则在IE6中不起作用,其他任何地方都可以。此资源特别是。对于支持仍然不完整的兄弟姐妹,:nth-​​child()等很有用
FelipeAls 2010年

10

它匹配p与类元素some_class直接div


5

p具有class的所有标签some_class都是标签的直接子级div


4
html
<div>
    <p class="some_class">lohrem text (it will be of red color )</p>    
    <div>
        <p class="some_class">lohrem text (it will  NOT be of red color)</p> 
    </div>
    <p class="some_class">lohrem text (it will be  of red color )</p>
</div>
的CSS
div > p.some_class{
    color:red;
}

<p>与之在一起的所有直接子代.some_class都会将样式应用于它们。


3

(子选择器)在css2中引入。div p {}选择div元素之后的所有p个元素,而div> p仅选择子p个元素,而不选择大子,大子,依此类推。

<style>
  div p{  color:red  }       /* match both p*/
  div > p{  color:blue  }    /* match only first p*/

</style>

<div>
   <p>para tag, child and decedent of p.</p>
   <ul>
       <li>
            <p>para inside list. </p>
       </li>
   </ul>
</div>

有关CSS Celector及其用法的更多信息,请查看我的博客, css选择器css3选择器


0

CSS中较大的符号(>)选择器意味着右侧的选择器是左侧任何内容的直接后代/子代。

一个例子:

article > p { }

表示仅对文章后面的段落进行样式设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.