给出以下代码:
<div id="bla">
<p class="blubber">Johnny Bananas</p>
</div>
和那个html doc的头部风格:
<style>
div#bla{background:yellow}
p.blubber{background:purple}
</style>
为什么孩子会被涂成紫色并覆盖其父母?
答案 0 :(得分:4)
默认情况下,子级不会继承background
属性。因此,div#bla
的背景样式不适用于p.blubber
,而p.blubber
可以独立于其父级指定自己的背景颜色,无论其具体如何。
由于background
未被继承,因此实际上不会覆盖。
答案 1 :(得分:0)
当使用多个样式表时,样式表可能会争夺特定选择器的控制权。在这些情况下,必须有关于哪种样式表的规则将胜出的规则。以下特征将决定矛盾样式表的结果。
查看有关级联顺序的部分 - http://htmlhelp.com/reference/css/structure.html
答案 2 :(得分:0)
因为特异性相同,所以规则将适用于p
元素。如果您删除p
并且只有.blubber
,则无效。
此外,儿童不能覆盖父母,因此如果内容更多,您会在p
周围看到黄色(添加div
的填充)。
背景颜色不是CSS中的继承属性。