【发布时间】:2013-07-10 22:01:42
【问题描述】:
如下面的截图所示,我想放置一个底部固定图像,它应该出现在(而不是超过)一些内容(徽标和中心描述文本)之后。此图片应适合屏幕的宽度。
我想出了这两个错误的解决方案。首先,使用 CSS background-size 属性:
// CSS
.bg {
width: 600px;
height: 300px;
position: fixed;
bottom: 0;
left: 0%;
background: url('image.jpg') no-repeat center fixed;
-webkit-background-size: contain;
-moz-background-size: contain;
-o-background-size: contain;
background-size: contain;
}
// HTML part
<div class="bg"></div>
其次,使用一点 Javascript 并识别窗口的调整大小并在图像标签上设置一些 css 属性:
// JS
// some magick here...
if ((win_w / win_h) < ($bg.width() / $bg.height())) {
$bg.css({height: '100%', width: 'auto'});
} else {
$bg.css({width: '100%', height: 'auto'});
}
// HTML Part (I'm using a shim)
<img class="bg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" style="position: relative; left: 0; bottom: 0" />
这些解决方案有效,但我不希望图像覆盖(或成为其背景)徽标和说明。你能帮帮我吗?
【问题讨论】:
-
为什么这么复杂?只需将图片放在文字说明下方和菜单上方
-
该图像应该适合窗口的高度。我不想向下滚动。如果我调整视口的大小,它应该始终锁定在页脚的顶部并动态调整其高度。
-
您可以只使用
max-width: 100%;,这将使图像仅与其容器(在本例中为视口)一样大,并且当其宽度发生变化时,它将正确缩放并保持其纵横比。对于 IE,您将需要带有width: 100%;的特定样式表或用于max-widthcss 声明的 shim。让我知道这是否有效。
标签: css background-image fixed