无法使背景图像全屏显示

时间:2013-01-06 03:30:26

标签: jquery html css

我正在尝试使用视差制作网站。

我遇到了CSS问题。以下是HTML:

<div id="skrollr-body">

        <div class="subnav"> 
            <ul  id="nav">
                <li><a href="#home">Home</a></li>
                <li><a href="#foo">Foo</a></li>

            </ul> 
        </div>


            <div id="home" class="centered" data-0="height:100%;" data-1000="height:0%;" > 
                <div class="zebra">
                     <div class="contentWrap">

                          test

                     </div>         
                </div> 
            </div>


            <div id="foo" class="centered" data-1000="height:100%;" data-2000="height:0%;">
                <div class="world">
                         <div class="contentWrap">

                              test

                         </div>         
                 </div> 

            </div> 
</div>

这是css:

#home {  
    background: #dedede;
    height: 100%;
    z-index: 901;
} 
#foo{background: yellow; z-index:800;}  

.zebra {
    background-image: url("/img/zebra-pattern.png");
    background-position: center center;
    background-repeat: repeat-x;
    background-size: cover;
    height: 100%;
    position: relative;
    width: 100%;
}

.world {
    background-image: url("/img/world.jpg");
    background-position: center center;
    background-repeat: repeat-x;
    background-size: cover;
    height: 100%;
    position: relative;
    width: 100%;
}

.contentWrap{ 
    position: absolute; 
    border: 1px solid red;
}

我的问题是如果我没有明确地放置高度,背景图像不会变成全屏。

任何建议?

2 个答案:

答案 0 :(得分:1)

对于处理任何元素的百分比高度,它的父级必须在其上设置某种高度。父母的身高也可以是百分比,但是,在这种情况下,要使这个百分比有效,它自己的父母也必须在其上设置某种高度。这一直到html元素。

在您的情况下,如果#skrollr-bodybody元素的直接子元素,则必须将其包含在样式表中:

html,
body, 
#skrollr-body {
    height: 100%;
}

答案 1 :(得分:1)

我使用“background:cover”和skrollr遇到了同样的问题。

问题源于“覆盖”指定图像的大小(覆盖元素)和skrollr使用“背景位置”来偏移图像...如果图像只有元素那么大的事实它包含它,当它“滚动”它将留下空白。我正在写一些jquery来调整我的背景大小相当于“封面+ 10%”。

如果有人在我做之前完成了这件事,我很乐意看到它!

~~更容易的选择是确保您的图像比它宽得多。 (如果您使用skrollr垂直设置动画)