【发布时间】:2015-10-30 18:49:14
【问题描述】:
我一直在尝试使用子组合器选择器进行练习,但结果似乎好坏参半。
我设置了以下示例 html:
<div class="One">
One Text
<div class="Two">
Two Text
<div class="Three">
Three Text
<div class="Four">
THE BASE IS HERE.
</div>
</div>
</div>
</div>
然后我尝试执行以下操作。
div.One > div.Two {
color: blue;
}
我的结果与我刚刚使用后代选择器的结果相同。虽然,当我尝试在无序列表中使用带有有序列表的子组合器时,它似乎正如我所期望的那样工作。
这里发生了什么?
以下是我期望它的行为方式的示例。
示例 HTML:
<ul class="Parent">
<li>One</li>
<li>Two</li>
<ol class="Child">
<li>One One</li>
<li>Two Two</li>
</ol>
<li>Three</li>
并使用此选择器:
ul.Parent > li {
color: blue;
}
第二个例子只选择了我期望它表现的孩子。但是当使用嵌套的 div 时......它总是沿着链条传递给孙子。
所以我的问题是,为什么它只在第二个示例中选择孩子而不在第一个示例中选择?
【问题讨论】:
-
我不清楚你的问题。您期望发生什么(或没有发生)?顺便说一句,
color是一个继承属性,所以即使你把它限制在.Twodiv 中,它的所有子元素也会得到它。 -
w3schools.com/css/css_combinators.asp 有一些关于差异的注释。在这里查看“后代”和“孩子”的答案。
-
嗯,孩子就是后裔吧?
-
@torazaburo 孩子是后代,但后代不一定是孩子。我认为这就是这个问题的困惑所在。
-
Child 是后代的子集。例如,二、三和四是一的后代,但只有二是一的孩子。考虑一下您的家谱,您的曾祖母将您的祖母作为孩子和后裔,但您和您的母亲也是后裔,但不被视为她的孩子。
标签: css css-selectors selector