BODY标记的背景颜色应用于整个HTML

我对html中body标记的大小感到困惑。

我有一个艰难的代码如下:

<body>

</body>


 body{

padding: 0px;

height: 100px;

background-color: #e5e5e5;

}

为什么背景会覆盖整个页面?我以为背景只能覆盖100px,

请为我解释一下,谢谢您的帮助!

回答:

这的确令人费解,但它是在CSS2.1规范规定,第14.2背景:如果计算出的值background-

colortransparent和的计算值background-imagenonehtml元素(如东西都默认情况下),浏览器必须改用的计算值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

回到顶部