为什么设置 html/body 背景色会影响浏览器背景,而 html 的背景色优先级更高?

为什么设置 html/body 背景色会影响浏览器背景,而 html 的背景色优先级更高?

为何设定 html/body 背景色会影响浏览器界面的整体背景?

CSS 中,body 往往是控制最高层次元素的标签。通常,当为 body 设置背景色时,浏览器窗口的整个背景也会变成 body 的背景色,即使 body 的尺寸无法完全填满窗口。

有趣的是,如果你此时再为 html 设置背景色,浏览器的整体背景色就会从 body 的背景色切换为 html 的背景色。为何会出现这种情况?

答案在于 CSS 规范,具体可参考 W3C 文档:

对于根元素是 HTML HTML 元素或 XHTML html 元素的文档 [HTML]:如果根元素上 background-image 的计算值是 none,并且其 background-color 为透明,那么用户代理必须改用从该元素的第一个 HTML BODY 或 XHTML body 子元素传播背景属性的计算值。BODY 元素背景属性的已用值是其初始值,而传播的值被视为在根元素上指定。建议 HTML 文档作者为 BODY 元素而不是 HTML 元素指定画布背景。

以上就是为什么设置 html/body 背景色会影响浏览器背景,而 html 的背景色优先级更高?的详细内容,更多请关注其它相关文章!