我试图设置body
元素的背景。我已经改变了body
的宽度,我希望背景能够适应这个宽度,而是填满整个屏幕。我该如何解决?
body {
border: 1px solid black;
width: 500px;
margin: 0 auto;
background: black;
}

答案 0 :(得分:2)
您实际上是这样做的,除非您没有为html
元素声明背景颜色,它会采用body
元素的背景颜色。因此,你没有看到差异。
只需为html
元素添加不同的背景颜色,并为body
提供一些height
:
html {
background-color: red; /* new */
}
body {
border: 1px solid black;
width: 500px;
height: 500px; /* new */
margin: 0 auto;
background: black;
}
了解html
,body
和background-color
之间的关系。
所有元素的初始background-color
为transparent
。
如果未指定background-color
元素的html
(即transparent
),则根据CSS规则,浏览器会为其提供background-color
body
元素。
来自规范:
3.11.2. The Canvas Background and the HTML
<body>
Element对于其根元素是HTML
HTML
元素或XHTML的文档html
元素:如果background-image
的计算值为 根元素为none
,其background-color
为transparent
, 用户代理必须传播计算的值 该元素的第一个HTMLBODY
或XHTML的背景属性body
子元素。BODY
元素的使用值 background属性是它们的初始值,并且是传播的 将值视为在根元素上指定的值。它 建议HTML文档的作者指定画布BODY
元素的背景而不是HTML
元素。