2010-07-14 102 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>