我有一个情况,我在 a.menu
内有 a #header
,当我.menu
通过像这样的 css 选择器访问 的孩子时.menu a
,它使用的是 the #header a
。
我期待.menu a
覆盖,#header a
因为它更接近a
元素。为什么没有发生这种情况?我假设它具有与基于以下示例的 id 相比的类。
在示例中,是否有一种在不限制父样式的情况下覆盖#red span
css的好方法?.blue span
“好方法”我想我的意思是灵活。例如.blue
,可能是一个由 php 框架创建的元素,它在许多地方使用(可能不在一个 id 样式的父元素内,或者可能不在一个不同 id 样式的父元素内)。
这是一个例子。除了#green
仍然是红色的:
HTML:
<div id="red">
<span>red</span>
<div class="blue">
<span>blue(class) - should be blue</span>
</div>
<div id="green">
<span>green(id) - should be green</span>
</div>
<div class="green">
<span>green(class) - should be green</span>
</div>
<div>
<span>no child div style - should still be red</span>
</div>
</div>
CSS:
#red span {
color: red;
}
.blue span {
color: blue;
}
.green, #green span {
color: green;
}