CSS Div背景图像固定高度100%宽度

时间:2013-03-30 00:51:10

标签: html css

我正在尝试使用背景图像设置一系列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;
    }

3 个答案:

答案 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)

http://jsfiddle.net/ndKWN/1/

您可以使用background-size: cover;

答案 2 :(得分:3)

但问题是.chapter类不是动态的你宣称高度:1200px

因此最好使用背景:封面并设置媒体查询特定高度的流行分辨率。