我看不出两者之间的区别:
html { background: #f1f1f1; }
和
body { background: #f1f1f1; }
有什么解释吗?
两者之间没有真正的区别(如果您只是在谈论在哪里申请background,那么BoltClock对另一个问题的答案更合适)。html是一个元素,就像body是。
background
html
body
两者都是有效的选择,并且都可以在所有通用浏览器中使用。
例如,YUI重置选择background在html元素上设置一个,而不是body:
这要求您将backgroundon 设置html为on ,例如,请参见:无法使用CSSreset更改主体背景颜色
根元素的背景成为画布的背景,并且其背景绘画区域扩展为覆盖整个画布,尽管任何图像的大小和位置都相对于根元素而定,就好像它们是为该元素单独绘制的一样。(换句话说,背景定位区域是针对根元素确定的。)如果根的“ background-color”值为“ transparent”,则画布的背景色取决于UA。根元素不会再次绘制该背景,即其背景的使用值是透明的。
和:
对于其根元素是HTML HTML元素[HTML401]或XHTML html元素[XHTML11]的文档:如果根元素上“ background- image”的计算值为“ none”且其“ background-color”为“ transparent” ”,则用户代理必须改为从该元素的第一个HTML BODY或XHTML body子元素传播背景属性的计算值。该BODY元素的背景属性的使用值是它们的初始值,并且将传播的值当作在根元素上指定的那样对待。建议HTML文档的作者为BODY元素而不是HTML元素指定画布背景。