absolute子元素高度如何随父元素滚动内容改变?

absolute子元素高度如何随父元素滚动内容改变?

子元素absolute高度随父元素滚动内容改变问题

在网页设计中,有时我们需要让absolute子元素的高度与父元素中可滚动内容的高度一致。根据提供的html和css代码,父元素包含多个黑色块作为可滚动内容,而absolute子元素被设置为固定高度。

解决方案

要解决此问题,我们需要创建一个新的相对定位层来包含滚动内容,并让absolute子元素相对于该层而不是直接相对于父元素定位。因此,我们可以将 overflow:auto 属性移动到新创建的相对层上。或者,我们可以单独给内容区域在包裹一个 div,然后给这个 div 设置 position: relative。

示例代码

使用新创建的相对层:

<div class="box">
  <div class="b2">
    <div style="overflow: auto">
      <div style="..."></div>
      <div style="..."></div>
      <div style="..."></div>
      <div style="..."></div>

      <div style="position: absolute; width: 100%; height: 100%; top: 0; background-color:aqua;opacity: 0.5"></div>
    </div>
  </div>
</div>

知识点

  • 元素相对于最近的非 static 定位祖先元素的偏移来确定位置。
  • 确定位置的同时也可以获取这个祖先元素的宽/高等属性。

以上就是absolute子元素高度如何随父元素滚动内容改变?的详细内容,更多请关注其它相关文章!