为什么主体标记不覆盖HTML标记属性?

为什么主体标记不覆盖HTML标记属性?,html,css,css-specificity,Html,Css,Css Specificity,我已将此css应用于我的html文档: html{ 背景色:红色; } 身体{ 背景颜色:黄色; } 因为你的身体是空的0px高度 如果我们更改主体的h/w,您将得到包括边距/填充在内的内容,您可以重置 html{ 背景色:红色; } 身体{ 背景颜色:黄色; 宽度:100vw; 高度:100vh; } HTML和BODY元素是不同的元素,因此级联规则(包括您放置规则集的顺序)在这里不相关 您的困惑可能源于CSS对HTML和BODY元素有一些限制: 对于根元素为HTML元素或XHTML元素的

我已将此css应用于我的html文档:

html{ 背景色:红色; } 身体{ 背景颜色:黄色;
} 因为你的身体是空的0px高度

如果我们更改主体的h/w,您将得到包括边距/填充在内的内容,您可以重置

html{ 背景色:红色; } 身体{ 背景颜色:黄色; 宽度:100vw; 高度:100vh;
} HTML和BODY元素是不同的元素,因此级联规则(包括您放置规则集的顺序)在这里不相关

您的困惑可能源于CSS对HTML和BODY元素有一些限制:

对于根元素为HTML元素或XHTML元素的文档,“背景色”的计算值为“透明”,而“背景图像”的计算值为“无”,在为画布绘制背景时,用户代理必须使用该元素的第一个HTML主体元素或XHTML主体元素子元素的背景属性的计算值,并且不能为该子元素绘制背景

因此,如果你只设置其中一个,那么这就是你将得到的颜色

这里有一个红色的HTML元素


html{background:red;}因为body的高度为0。@justin与html的高度相同,高度为0。我想把这个问题改为html还是body?哪一个应该松开?@temaniaf如果没有,默认情况下html具有自动高度。@J.Sadi没有,由于背景传播,只有背景会覆盖整个屏幕和画布。添加边框以查看:。。它只是转换html内容,在本例中是来自默认正文边距的8px。删除边距,边框将对齐:。。还可以检查图元以注意实际高度