我对 html 中 body 标签的大小感到困惑。
我有一个艰难的代码如下:
<body>
</body>
body{
padding: 0px;
height: 100px;
background-color: #e5e5e5;
}
为什么背景覆盖整个页面?,我认为它应该只覆盖100px,
请帮我解释一下,谢谢您的帮助!
这确实令人困惑,但它是在 CSS 2.1 规范中规定的,条款14.2 背景 http://www.w3.org/TR/CSS2/colors.html#background:如果计算值background-color
is transparent
和计算值background-image
is none
为了html
元素(默认情况下),浏览器必须使用背景属性的计算值body
元素并且不得为其渲染背景body
(即使其透明)。那是,body
背景神奇地变成了html
背景如果html
缺乏自己的背景——这只会影响背景属性,而不影响物体的真实高度body
元素。
我还没有看到这个奇怪的规则有任何理由,它规定了一种“反向继承”。但它在 CSS 2.1 中明确指定并由浏览器应用。
正如其他答案中所解释的,您可以通过设置背景来使您的内容具有特定高度的背景html
(以便body
背景确实适用于body
仅)或通过在内部使用包装元素body
并在其上设置高度(因为特殊规则适用于body
only).
感谢 Anne van Kesteren,当我在 WHATWG 邮件列表中询问这个问题时,她指出了 CSS 规范。 (我以为我已经熟记 CSS 2.1,但实际上并没有。☺)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)