【发布时间】:2013-08-16 00:19:47
【问题描述】:
问题是:我有一个巨大的背景图像和具有这些特征的内容:
- 内容以
margin: auto;为中心,宽度固定 - 内容的位置与图像相关(就像它适合图像的中间一样)
- 此连接仅是水平连接(垂直滚动可按预期移动所有内容)
实际上,这在位置固定在背景图像上的桌面设备上运行良好。
但问题是:当我调整窗口大小直到它小于内容时,内容固定在左侧,但背景图像仍然居中,正如预期的那样。在这种情况下,两个元素之间的连接会丢失。
我有这个 JavaScript 可以解决问题,但这当然是我想避免的一些开销,因为由于计算,它在任何时候都不流畅:
$(window).resize(function(){
container.css('left', (body.width() - img.width()) / 2);
});
我也尝试过这样的事情:
<div id="test" style="
position: absolute;
z-index: 0;
top: 0;
left: 0;
width: 100%:
height: 100%;
background: transparent url(path) no-repeat fixed center top;
"></div>
但这会导致与上述相同的问题。
这个问题有什么优雅的 CSS 解决方案吗?
演示
注意
图像大小是固定的并且是已知的,它永远不会被浏览器缩放。
【问题讨论】:
-
我认为一个例子小提琴看看效果可能会有所帮助
-
回答你的问题,不是真的。您会注意到该作品的背景图像的分辨率比您低得多。那是因为在脚本中他们将图像缩放到屏幕的适当高度。
-
我想你可以强制 html 将图像渲染为屏幕大小,但这会导致图像的比例问题,最好放大。
-
是的,我明白你的意思,它看起来像图像不粘但它是。它粘在页面的顶部,这是正确的,只是图像的大小使它看起来不像(当您将窗口展开得非常大时,您也可以看到这一点)。在 CSS 中解决此问题的问题在于,无法在 CSS 中合理地将图像大小调整为屏幕大小,同时保持像素比一致,这就是该工作示例使用 JS 的原因。所以我完全不确定如何解决这个问题。
-
您可以使用 css calc 以不同的单位添加不同的数字。看这里:developer.mozilla.org/en/CSS/-moz-calc
标签: javascript html css css-position