CSS: Как заставить этот оверлей расширяться на 100% при прокрутке? - PullRequest
50 голосов
/ 10 января 2011

Вот пример вопроса:

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>

Ответы [ 3 ]

152 голосов
/ 10 января 2011

position: fixed; на оверлее.

8 голосов
/ 10 января 2011

Изменить #overlay position:absolute на position:fixed

3 голосов
/ 14 октября 2015

Это происходит потому, что #overlay position: absolute относится к <html> и использует его размеры, которые являются только высотой области просмотра.

Чтобы убедиться, что #overlay использует размеры всей страницы, вы можете использовать position: relative; на <body> (но вам нужно будет сначала удалить min-height: 100% и height: 100% на <body> потому что это заставляет его использовать размер области просмотра). #overlay будет использовать размеры <body> и заполнит всю страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...