【发布时间】:2011-01-10 19:26:13
【问题描述】:
拿这个简单的例子打开它:
<html>
<body style="background-image:url(http://upload.wikimedia.org/wikipedia/commons/2/21/Mandel_zoom_00_mandelbrot_set.jpg);background-repeat: no-repeat; background-position: top center;">
<div style="width: 8000px; border: 3px solid red;">Demo</div>
</body>
</html>
页面的制作使得主体有一个居中的背景图片和一个溢出窗口边界的包含元素,因此可以进行水平滚动(如果你的显示器宽度超过 8000 像素,那么你真的很酷,请让窗口变小并刷新)。
问题在于,由于某种原因,<body> 没有延伸到包含<div>。它只是与视口保持相同的宽度,<div> 会溢出它。这反过来会导致背景在错误的位置居中并将其裁剪为视口的大小。向右滚动时非常难看。
我已经找到了解决这个问题的方法,但我想知道为什么会这样?它似乎在浏览器之间也是一致的。但在我看来,这是非常违反直觉的,基本上是错误。容器元素应该足够大以包含它的子元素 - 除非它们是绝对定位的,当然在这种情况下它们不参与布局计算。
【问题讨论】:
-
嘿。 2年后回到这个,我正在寻找你说你找到的相同解决方案。 Bobince 的回答无济于事,非常......(浮动是唯一的选择吗?)
-
我还在使用浮点数。在这里查看:drowtales.com
标签: html css layout background overflow