与 body 相比,将 css 规则应用于 html 有什么区别?

2024-05-13

我看不出以下之间的区别:

html {
    background: #f1f1f1;
}

and

body {
    background: #f1f1f1;
}

有什么解释吗?


没有真正的区别(如果你只是谈论在哪里申请background, 否则BoltClock 对另一个问题的回答 https://stackoverflow.com/questions/4565942/should-global-css-styles-be-set-on-the-html-element-or-the-body-element是更合适的)。html是一个元素,就像body is.

两者都是有效的选择,并且都可以在所有常见浏览器中运行。

例如,YUI Reset 选择设置background on the html元素而不是body:
http://yui.yahooapis.com/3.3.0/build/cssreset/reset.css http://yui.yahooapis.com/3.3.0/build/cssreset/reset.css

这需要您设置您的background on html,例如参见:无法使用 CSS 重置更改正文背景颜色 https://stackoverflow.com/questions/6671846/cant-change-body-background-color-using-css-reset

See: http://dev.w3.org/csswg/css3-background/#special-backgrounds http://dev.w3.org/csswg/css3-background/#special-backgrounds

根元素的背景变成了 画布及其背景绘画区域延伸覆盖整个 画布,尽管任何图像的大小和位置都相对于画布 根元素就好像它们是单独为该元素绘制的。 (其他 也就是说,背景定位区域是按照root来确定的 元素。)如果根的“background-color”值为“透明”,则 画布的背景颜色取决于 UA。根元素不 再次绘制该背景,即其背景的使用值为 透明的。

And:

对于根元素是 HTML HTML 元素 [HTML401] 或 一个 XHTML html 元素 [XHTML11]:如果计算出的值 根元素上的“background-image”为“none”,其 “背景颜色”是“透明”,用户代理必须改为 传播背景属性的计算值 元素的第一个 HTML BODY 或 XHTML body 子元素。使用值 BODY 元素的背景属性是它们的初始值, 并且传播的值被视为好像它们是在 根元素。建议 HTML 文档的作者指定 BODY 元素而不是 HTML 的画布背景 元素。

这堵文字墙所说的内容如下所示:

  • background就在body: http://jsfiddle.net/hhtzE/ http://jsfiddle.net/hhtzE/
  • background on html and body: http://jsfiddle.net/hhtzE/1/ http://jsfiddle.net/hhtzE/1/
  • background only html: http://jsfiddle.net/hhtzE/2/ http://jsfiddle.net/hhtzE/2/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

与 body 相比,将 css 规则应用于 html 有什么区别? 的相关文章