拿这个简单的HTML:
#parent {
background: pink;
}
#child {
width: 5000px;
}
Hello
该#parent
元素的粉红色的背景并不在整个坚持#child
元素.为什么是这样?
在body
元素上设置背景确实适用于整个#child
,即使#parent
并且body
共享相同的宽度,即视口宽度.
奇怪的是,设置#parent
元素的显示来inline-block
修复这个问题,虽然我不明白为什么!
这里的任何帮助将不胜感激:)
在
#parent
那粉红的背景并不在整个坚持#child
.为什么是这样?
这是因为块级元素的默认宽度为100%
.在这种情况下,它具有的宽度100%
的的body
元素,这是相同的视口.
换句话说,即使元素的子元素的宽度为5000px
,但它仍然具有100%
视口的宽度,这意味着背景将不会延伸以覆盖子元素.这不适用于body
元素的原因是因为body
元素是一种特殊情况,并且值被视为在根元素上指定它们.看到:
3.11.2.画布背景和HTML
元素
该
body
元素的背景属性的已使用值是它们的初始值,并且传播的值被视为在根元素上指定它们.
奇怪的是,设置
#parent
显示以inline-block
解决这个问题,虽然我不明白为什么!
那是因为它不再是宽度为的块级元素100%
.此外,inline-block
元素具有"缩小到适合"的宽度,这意味着它们将采用子元素的宽度.类似地,添加display: table
会有类似的结果.