我很难理解为什么某些属性的行为不符合W3规范中规定的行为。
例如,在specification中,它表示"背景图像"和"背景色"财产不是继承的。
但是下面的代码证明了这一点。
CSS
#nav > li {
background-color: yellow;}
标记
<div>
<ul id="nav">
<li>This is a list</li>
<li>This is a list</li>
<li>
<ul>
<li>This is a list</li>
<li>This is a list</li>
</ul>
</li>
</ul>
</div>
你会看到即使是嵌套在第3个列表项中的第2级列表项也改变了它们的背景颜色,而我只打算将它仅应用于作为第1级列表项的直接子项
现在我的问题是这个。
为什么会这样?谁在这里错了,浏览器或规范?我错过了什么吗?
感谢任何帮助。
答案 0 :(得分:1)
我想我找到了答案。 当你看到devtools,你会看到,第二级没有背景颜色。你看到的颜色是父李的颜色: - )
#nav > li {
background-color: yellow;
}
使用border属性可以更好地看到它 更新小提琴: http://jsfiddle.net/2brhj2bq/1/
#nav li {
border:1px solid red;
}
#nav > li {
border:1px solid lime;
}
答案 1 :(得分:0)
这是因为下一个UL也在Li中,并且li具有bg颜色黄色,因此它应该是黄色的。只是想想你做了什么,你正在分配bg然后你正在寻找为什么它正在发生它不是内部ul的bg它是ul#nav li的bg。