html - 覆盖 div 填充整个父 div,包括滚动时

标签 html css

我有一个应该填满整个 div 的叠加层。

HTML:

<div class="phone">
    <div class="overlay"></div>
</div>

CSS:

    .phone {
      position: relative;
      width: 300px;
      height: 500px;
      padding: 15px;
      background: #F2F4F5;
      overflow: hidden;
      cursor: default;
    }

    .overlay {
      display: none;
      background: rgba(27, 35, 41, 0.5);
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1;
    }

我有一些 JS 将内容添加到 .phone div,当添加内容时,它会自动滚动到 .phone div 的底部。但是,叠加层只会拉伸(stretch)以适应 300x500 的原始尺寸。因此,当它向下滚动时,叠加层不再覆盖整个 div。

如果我将 position: fixed 添加到叠加层,它会填满整个屏幕,而不是只填满 .phone div。

最佳答案

将叠加层放在 .phone div 之外,使其成为 body 元素的子元素。然后将 Body 设置为相对位置。

HTML

<body>
    <div class="overlay"></div>
    <div class="phone"></div>
</body>

CSS:

body {
    position:relative;
}
.overlay {
      display: none;
      background: rgba(27, 35, 41, 0.5);
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      z-index: 1;
}

.phone {
      width: 300px;
      height: 500px;
      padding: 15px;
      background: #F2F4F5;
      overflow: hidden;
      cursor: default;
    }

关于html - 覆盖 div 填充整个父 div,包括滚动时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37081719/

相关文章:

html - 将文字放在图像中心点?

html - 根据 url 或子目录突出显示当前导航选项卡

javascript - 在 <p> 标记中的行开头折叠

html - 如何使用 svg 过滤器在图像转换中添加更多图像?

css 媒体查询 - 这是一种糟糕的实现方式吗?

javascript - 将文本从输入表单复制到 DIV 中

html - 如何在文章中正确设置div

javascript - .fadeIn() 在低于 9 的 IE 版本中不会触发

html - 有序列表中的 float 跨度

javascript - 下拉菜单隐藏在图像后面