Javascript 车身';他的背景人满为患

Javascript 车身';他的背景人满为患,javascript,html,css,Javascript,Html,Css,所以我把我身体的高度和宽度分别设置为100px,并给它一个红色的背景色和10px纯黑的边框。为什么我看到屏幕上到处都是红色,而不是带有黑色边框的100x100红色框,边框具有预期的尺寸 html,正文{ 高度:100px; 宽度:100px; } 身体{ 背景色:红色; 字体大小:60px; 边框:10px纯黑; } 这很奇怪。这不是我所期望的,但似乎表明这是一种已知的行为,即如果未设置上的背景色,但上的背景色是,则背景将淹没整个区域 引述: 对于根元素为HTML元素或XHTML的文档 htm

所以我把我身体的高度和宽度分别设置为100px,并给它一个红色的背景色和10px纯黑的边框。为什么我看到屏幕上到处都是红色,而不是带有黑色边框的100x100红色框,边框具有预期的尺寸

html,正文{
高度:100px;
宽度:100px;
}
身体{
背景色:红色;
字体大小:60px;
边框:10px纯黑;
}

这很奇怪。这不是我所期望的,但似乎表明这是一种已知的行为,即如果未设置
上的背景色,但
上的背景色是,则
背景将淹没整个
区域

引述:

对于根元素为HTML元素或XHTML的文档 html元素[html]:如果 根元素为“无”,其背景颜色为透明,用户 代理必须传播背景的计算值 来自该元素的第一个HTML正文或XHTML正文子元素的属性 元素。该BODY元素的背景属性的已用值 是它们的初始值,传播的值被视为 它们是在根元素上指定的

您还可以在spec链接上看到一个与您类似的示例

更新: RE:关于
元素传播到视口背景的另一个问题,我认为这也得到了回答,尽管我不太清楚:

根元素的背景成为画布背景和 其背景绘制区域延伸到整个画布


注意
canvas
在这种情况下,指的是页面呈现的无限表面,而不是HTML5画布。在我看来,这似乎描述了您在一篇评论中提到的行为,其中具有较小宽度/高度的
的背景被传播到视口,尽管他们为什么需要我上面引用的附加部分,我不确定。如果你好奇的话,在这个链接上有更多的信息。AFAICT各部分之间似乎有一些重叠。

如果您的目标是创建一个带有黑色边框的100x100红色框,您可以在html中创建一个div,然后在CSS中为该div提供所需的属性

比如说,

。红色框{
高度:100px;
宽度:100px;
背景色:红色;
边框:10px纯黑;
}


是的,确实身体的背景正在传播到html中,但现在同样的问题出现在html中。我已经设置了100x100px的高度和宽度尺寸以及10px的黑色边框。没有看到一个100x100px的蓝色框,背景在屏幕上到处都是,边框上有预期的显示<代码>正文,html{高度:100px;宽度:100px;}html{背景色:浅绿色;边框:10px纯黑;}``正文{背景色:红色;字体大小:60px;边框:10px纯黑;}你想实现什么?为什么需要使html和body元素都小于浏览器视口?我只是想查看body的边框,但遇到了这种行为我当然不是规范专家,但我能说的最好的是,规范的该区域也涵盖了这种行为。更新了我的答案。谢谢,希望这是一个可靠的来源