2010-07-14 103 views
40

我想制作一个覆盖整个页面的div。我把高度为100%的css样式,但这只覆盖可视区域。当我向下滚动时,我希望它也覆盖该区域。制作覆盖整个页面的div

+0

这里一个伟大的文章,如何做到这一点... http://james.padolsey.com/javascript/get-document-height-cross-browser/ – exoboy 2010-07-15 03:11:24

+0

检查我的解决方案下面。除非我误解了你的问题,否则其他解决方案只会告诉你视口(窗口)尺寸,而不是文档尺寸...... – exoboy 2010-07-15 16:43:48

+0

CSS解决方案不适用于这个问题,你需要一点JavaScript。 – exoboy 2010-07-15 16:44:05

回答

62

使用position:fixed这样你的div将保持在持续整个可视区域..

给你的div类overlay和你的CSS创建以下规则

.overlay{ 
    opacity:0.8; 
    background-color:#ccc; 
    position:fixed; 
    width:100%; 
    height:100%; 
    top:0px; 
    left:0px; 
    z-index:1000; 
} 

演示:http://www.jsfiddle.net/TtL7R/1/

0
html, body { height: 100%; } 
#page { min-height: 100% } 
-2

我不确定你在用这个div做什么,但是你也可以设置元素的样式。

1
<style type="text/css"> 
html, body { 
    margin:0; 
    padding:0; 
    height:100%; 
} 
#test { 
    position:absolute; 
    display:block; 
    background:#ccc; 
    height:100%; 
    width:100%; 
} 
</style> 
+1

+1用于归零身体。 – cbednarski 2010-07-14 21:58:13

+6

这将不起作用。“宽度和高度都为100%的位置:绝对”仍然只适合视口。如果你滚动,它将向上滚动,页面的其余部分将没有覆盖。 – 2010-07-14 23:06:19

0

css会做必要的工作。

.overlay { 
    background: #fff; 
    position: fixed; 
    bottom: 0; 
    right: 0; 
    left: 0; 
    top: 0; 
} 

有时我们想要覆盖页面正文,直到网页的所有资源都没有完全下载。而且他们将淡出此叠加层以显示我们网页的完整内容。下面的例子是上述的答案稍加修改,在这个例子中,我们展示覆盖页的全身用CSS3动画叠加:

更多的动画,请访问Here

$(window).load(function() { 
 
    $('.overlay').delay(1000).fadeOut(800); 
 
});
.overlay { 
 
    background: #fff; 
 
    position: fixed; 
 
    bottom: 0; 
 
    right: 0; 
 
    left: 0; 
 
    top: 0; 
 
} 
 
.loading { 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
} 
 
.loading-bar { 
 
    display: inline-block; 
 
    width: 4px; 
 
    height: 18px; 
 
    border-radius: 4px; 
 
    animation: loading 1s ease-in-out infinite; 
 
} 
 
.loading-bar:nth-child(1) { 
 
    background-color: #3498db; 
 
    animation-delay: 0; 
 
} 
 
.loading-bar:nth-child(2) { 
 
    background-color: #c0392b; 
 
    animation-delay: 0.09s; 
 
} 
 
.loading-bar:nth-child(3) { 
 
    background-color: #f1c40f; 
 
    animation-delay: .18s; 
 
} 
 
.loading-bar:nth-child(4) { 
 
    background-color: #27ae60; 
 
    animation-delay: .27s; 
 
} 
 

 
@keyframes loading { 
 
    0% { 
 
    transform: scale(1); 
 
    } 
 
    20% { 
 
    transform: scale(1, 2.2); 
 
    } 
 
    40% { 
 
    transform: scale(1); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<div class="overlay"> 
 
    <div class="loading"> 
 
    <div class="loading-bar"></div> 
 
    <div class="loading-bar"></div> 
 
    <div class="loading-bar"></div> 
 
    <div class="loading-bar"></div> 
 
    </div> 
 
</div> 
 
<p>Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, </p> 
 
<p>Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, </p> 
 
<p>Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, Lorem ipsum dolor sit amet, </p>