<html><head><style type="text/css">
#foo { color: blue; }
a.bar { color: red; }
#foo .baz { background-color: cyan; }
a.bar > .baz { background-color: yellow; }
</style></head>
<body>
<div id="foo">
<a href="#" class="bar">
<span class="baz">TEXT</span>
</a>
</div>
</body>
</html>
我是一个 CSS 菜鸟,但我的直觉告诉我,它与包含的比a.bar
匹配更具体,并且应该以黄色背景显示为红色。或者,如果更具体,则应为蓝色,背景为青色。<span>
TEXT
#foo
TEXT
#foo
TEXT
而是TEXT
以红色和青色背景显示(在 Chrome、IE8 上测试)。为什么a.bar
比 更具体#foo
,但又#foo .baz
比 更具体a.bar > .baz
?我怎样才能让这个文本以红色和青色黄色出现,并且对我已经指定的样式的干扰最少(最小的更改集)?