我不明白元素选择器“>”的含义。我认为它只会影响直接的孩子,但事实并非如此。
<div class="infos">
<ul>
<li> marmelade</li>
<li> schokolade</li>
<li> softeis</li>
<li> mandeln</li>
<li>
<ul>
<li> marmelade</li>
<li> schokolade</li>
<li> softeis</li>
<li> mandeln</li>
</ul>
</li>
</ul>
</div>
body {
color: #0bdede;
}
.infos > ul {
color: red;
}
为什么两个 <ul>
都是红色的? js fiddle
答案 0 :(得分:3)
编辑:啊。请注意,color
属性是继承的。如果你将一个元素设为红色,那么它的所有后代都将是红色的,除非它们被设置为另一种颜色。
因此,要编辑示例CSS以获得所需的效果:
.infos ul {
color: #0bdede;
}
.infos > ul {
color: red;
}
我认为它只会影响直接的孩子,但事实并非如此。
确实如此。例如:
.classname ul { color: green; }
.classname > ul { color: red; }
<div class="classname">
<ul>
<li>Direct child list: red</li>
</ul>
<div>
<ul>
<li>Descendant list, not direct child: green</li>
</ul>
</div>
</div>
但是,有关示例代码的两点注意事项:
虽然classname > ul
看起来比classname ul
更具体,但事实并非如此,所以你的第二条规则将覆盖你的第一条规则(尽管因为两条规则都有相同的效果,所以很难说明。
虽然您可能知道这一点,但要实际选择一个类名,您需要.classname
,而不是classname
。
答案 1 :(得分:2)
classname > ul
- 选择classname的第一级ul子项
classname ul
- 选择所有类名