我的大多数网页都在菜单下方的顶部有一个全宽横幅。它们被创建为带有来自图像精灵文件的背景图像的div,以减少页面加载时间。 我的问题是,当屏幕变小时,div不会调整大小,它只会削减div。我想要的是div总是100%宽,其高度按比例缩放以保持背景图像的比例(1300px×300px)。
这里是代码和jsfiddle:
<div class="entry-content">
<div class="banner"></div>
</div>
.entry-content {
max-width: 1300px;
width: 100%;
padding: 0 20px 0 20px;
}
.banner {
margin: 0 -20px 0 -20px;
max-width: 1300px;
height: 300px;
background: url("http://renservice.dk/wp-content/uploads/2016/02/banner-sprites.jpg");
background-position: 0 -900px;
}
答案 0 :(得分:0)
我添加了一个代码来按比例调整div的宽度。但是不要认为精灵图像背景会解决你的问题。
这是一个小提琴链接 https://jsfiddle.net/fy2zh4vm/3/
$(window).on('load resize', function(e){
$('.banner').height(parseFloat((300/1300)*$(window).width()));
});
答案 1 :(得分:0)
您正在寻找background-size
属性,您必须将其设置为cover
或contain
取决于您是否希望它覆盖div
标记
如果您想在此处阅读更多内容,请link
答案 2 :(得分:0)
正如我在评论中已经说过的那样:我建议你摆脱精灵,你可以用background-size:cover
或background-size:contain
解决问题。
万一你不能这样做,我找到了一个与精灵一起工作的解决方案,但你需要javascript(我使用jQuery,但如果你更喜欢普通的JS,那应该很容易实现)。< / p>
您的想法是,您阅读了横幅div的width
并相应地调整了height
和background-position
值。
这是 Fiddle
希望有所帮助,但又一次:这不是最好的解决方案,如果您绝对必须使用精灵,这只是解决方案!
答案 3 :(得分:0)