我正在尝试使用背景图像设置一系列div,每个div都有自己的固定高度,并且拉伸以填充宽度,即使顶部/底部有被剪裁的溢出。我只是不想边缘的白色空间。
目前,我有:http://jsfiddle.net/ndKWN/
CSS
#main-container {
float:left;
width:100%;
margin:0;
padding:0;
text-align: center;
}
.chapter{
position: relative;
height: 1400px;
z-index: 1;
}
#chapter1{
background: url(http://omset.files.wordpress.com/2010/06/homer-simpson-1-264a0.jpg) 50% 0 no-repeat fixed;
height:1200px;
}
#chapter2{
background: url(http://download.ultradownloads.com.br/wallpaper/94781_Papel-de-Parede-Homer-Simpson--94781_1680x1050.jpg) 50% 0 no-repeat fixed;
height:1200px;
}
答案 0 :(得分:47)
请参阅我对类似问题的回答here。
听起来你想要一个背景图像来保持它自己的宽高比,同时扩展到100%宽度并在顶部和底部被裁剪掉。如果是这种情况,请执行以下操作:
.chapter {
position: relative;
height: 1200px;
z-index: 1;
}
#chapter1 {
background-image: url(http://omset.files.wordpress.com/2010/06/homer-simpson-1-264a0.jpg);
background-repeat: no-repeat;
background-size: 100% auto;
background-position: center top;
background-attachment: fixed;
}
jsfiddle:http://jsfiddle.net/ndKWN/3/
这种方法的问题在于容器元素处于固定高度,因此如果屏幕足够小,下面可以有空格。
如果你想让高度保持图像的宽高比,你必须做一些类似于我在上面链接到的答案的编辑中写的东西。将容器的height
设置为0,并将padding-bottom
设置为宽度的百分比:
.chapter {
position: relative;
height: 0;
padding-bottom: 75%;
z-index: 1;
}
#chapter1 {
background-image: url(http://omset.files.wordpress.com/2010/06/homer-simpson-1-264a0.jpg);
background-repeat: no-repeat;
background-size: 100% auto;
background-position: center top;
background-attachment: fixed;
}
jsfiddle:http://jsfiddle.net/ndKWN/4/
如果每张图片的宽高比不同,您还可以将padding-bottom
百分比放入每个#chapter
样式中。要使用不同的宽高比,请将原始图像的高度除以其自身的宽度,然后乘以100得到百分比值。
答案 1 :(得分:16)
您可以使用background-size: cover;
答案 2 :(得分:3)
但问题是.chapter类不是动态的你宣称高度:1200px
因此最好使用背景:封面并设置媒体查询特定高度的流行分辨率。