这个问题在这里已经有一个答案:>
Applying a background to <html> and/or <body>1
我对HTML中的body标签的大小感到困惑.
我对HTML中的body标签的大小感到困惑.
我有一个艰难的代码如下:
<body> </body>
body{ padding: 0px; height: 100px; background-color: #e5e5e5; }
为什么背景覆盖所有的页面?,我以为应该只覆盖100px,
请为我解释一下,谢谢你的帮助!
解决方法
这确实令人困惑,但是在CSS 2.1规范第
14.2 Background条中规定:如果背景颜色的计算值是透明的,并且背景图像的计算值对于html元素是无(因为默认情况下),浏览器必须使用body元素的背景属性的计算值,并且不能为body渲染背景(即使其透明).也就是说,如果html缺少自己的背景,身体背景会变成html背景,而这只会影响背景属性,而不影响body元素的真实高度.
我没有看到这个奇怪的规则的任何理由,它规定了一种“逆向继承”.但是它在CSS 2.1中已被明确规定并被浏览器应用.
如其他答案所述,您可以通过在HTML上设置背景(使身体背景真正应用于身体)或通过使用身体内的包装元素并设置高度来使您的内容具有特定高度的背景(因为特殊规则仅适用于身体).
感谢安妮·范·凯斯伦(Anne van Kesteren),我在WHATWG邮件列表中询问了这个CSS规范. (我以为我以CSS为核心,但真的没有.☺)