以下是相关问题的示例:
http://dev.madebysabotage.com/playground/overlay.html
您看到整个页面上都有灰色叠加层,但如果向下滚动,则初始加载页面下方的内容没有叠加层.
我有一个#overlay
div,它似乎在滚动过程中不保持100%的高度,所以试图找出如何将其拉出来.
这是完整的来源:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>CSS Overlay</title>
<style type="text/css">
html {
height: 100%;
min-height: 100%;
}
body {
height: 100%;
min-height: 100%;
font-family: Georgia, sans-serif;
}
#overlay {
background: rgba(0,0,0,0.4);
width: 100%;
height: 100%;
min-height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 10000;
}
header, section, footer {
width: 800px;
margin: 0 auto 20px auto;
padding: 20px;
background: #ff0;
}
section {
min-height: 1500px;
}
</style>
</head>
<body>
<div id="overlay"></div>
<header>
<h1>Header</h1>
</header>
<section>
<p>Here's some sweet content</p>
</section>
<footer>
<p>Here's my footer</p>
</footer>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
小智 5
发生这种情况是因为#overlay
position: absolute
相对于<html>
并且使用它的尺寸,这只是视口高度。
为确保#overlay
使用整个页面的尺寸,您可以使用position: relative;
on <body>
(但您需要在第一个上删除min-height: 100%
和height: 100%
,<body>
因为这使其使用视口大小)。然后#overlay
将使用<body>
尺寸并填充整个页面。