BODY标记的背景颜色应用于整个HTML
我对html中body标记的大小感到困惑。
我有一个艰难的代码如下:
<body></body>
body{ padding: 0px;
height: 100px;
background-color: #e5e5e5;
}
为什么背景会覆盖整个页面?我以为背景只能覆盖100px,
请为我解释一下,谢谢您的帮助!
回答:
这的确令人费解,但它是在CSS2.1规范规定,第14.2背景:如果计算出的值background-
color是transparent
和的计算值background-image
是none
对html
元素(如东西都默认情况下),浏览器必须改用的计算值body
元素的背景属性,并且不得渲染背景body
(即使其透明)。也就是说,如果缺少自己的背景,body
背景就会神奇地变成html
背景html
-这只会影响背景属性,而不会影响body
元素的真实高度。
我还没有看到这种奇怪规则的任何原理,该规则规定了一种“反向继承”。但是它在CSS 2.1中明确指定并由浏览器应用。
如其他答案所述,您可以通过将背景设置为html
(使body
背景仅实际应用body
)或在其中使用wrapper元素body
并在其上设置高度(因为应用了特殊规则)来使内容具有特定高度的背景到body
)。
感谢当我在WHATWG邮件列表中询问CSS规范时,Anne van Kesteren指出了CSS规范。(我以为我很了解CSS 2.1,但实际上不知道。)
以上是 BODY标记的背景颜色应用于整个HTML 的全部内容, 来源链接: utcz.com/qa/415529.html