我正在尝试使用视差制作网站。
我遇到了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;
}
我的问题是如果我没有明确地放置高度,背景图像不会变成全屏。
任何建议?
答案 0 :(得分:1)
对于处理任何元素的百分比高度,它的父级必须在其上设置某种高度。父母的身高也可以是百分比,但是,在这种情况下,要使这个百分比有效,它自己的父母也必须在其上设置某种高度。这一直到html元素。
在您的情况下,如果#skrollr-body
是body
元素的直接子元素,则必须将其包含在样式表中:
html,
body,
#skrollr-body {
height: 100%;
}
答案 1 :(得分:1)
我使用“background:cover”和skrollr遇到了同样的问题。
问题源于“覆盖”指定图像的大小(覆盖元素)和skrollr使用“背景位置”来偏移图像...如果图像只有元素那么大的事实它包含它,当它“滚动”它将留下空白。我正在写一些jquery来调整我的背景大小相当于“封面+ 10%”。
如果有人在我做之前完成了这件事,我很乐意看到它!
~~更容易的选择是确保您的图像比它宽得多。 (如果您使用skrollr垂直设置动画)