CSS:如何通过滚动将此叠加层扩展100%?

Shp*_*ord 50 html css overlay

以下是相关问题的示例:

http://dev.madebysabotage.com/playground/overlay.html

您看到整个页面上都有灰色叠加层,但如果向下滚动,则初始加载页面下方的内容没有叠加层.

我有一个#overlaydiv,它似乎在滚动过程中不保持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)

ben*_*e89 156

position: fixed; 在叠加层上.

  • 3年后,仍然有用的帖子:)谢谢+1 (3认同)

Baz*_*zzz 9

更改#overlay position:absoluteposition:fixed


小智 5

发生这种情况是因为#overlay position: absolute相对于<html>并且使用它的尺寸,这只是视口高度。

为确保#overlay使用整个页面的尺寸,您可以使用position: relative;on <body>(但您需要在第一个上删除min-height: 100%height: 100%<body>因为这使其使用视口大小)。然后#overlay将使用<body>尺寸并填充整个页面。