css - 使用伪元素覆盖滚动的div

标签 css pseudo-element

我想用伪元素覆盖覆盖动态滚动内容的 div。
我遇到的问题是覆盖滚动内容,使折叠下方的所有内容都裸露。

如何让叠加层在其下方的内容滚动时保持原位?

.wantOverlay {
  width: 200px;
  height: 100px;
  overflow-y: scroll;
  position: relative;
}

.wantOverlay::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(150, 150, 150, .45);
}
<div class="wantOverlay">
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sed est vel ante faucibus tempor nec id.</div>
  <div>Unfortunately any text past this point no longer has the overlay.</div>
  <div>This text no longer has the overlay.</div>
</div>

最佳答案

position: sticky; 带有负 margin-top 就可以了。这是有关 sticky 的详细信息 https://developer.mozilla.org/tr/docs/Web/CSS/position

.wantOverlay {
  width: 200px;
  height: 100px;
  overflow-y: scroll;
  position: relative;
}

.wantOverlay::after {
  display: block;
  content: ' ';
  position: sticky;
  left: 0;
  top: 0;
  margin-top: -100%;
  width: 100%;
  height: 100%;
  background: rgba(150, 150, 150, .45);
}
<div class="wantOverlay">
  <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sed est vel ante faucibus tempor nec id.</div>
  <div>Unfortunately any text past this point no longer has the overlay.</div>
  <div>This text no longer has the overlay.</div>
</div>

关于css - 使用伪元素覆盖滚动的div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45624147/

相关文章:

html - 如何防止打印::在 css 之后?

css - 有没有办法在伪元素::之前或之后使用 SVG 作为内容

php - 标题 WordPress 中的登录/注册和货币小部件

html - 动态添加时angular6 matRipple不起作用

html - IE8 滚动后切掉一 block H1

javascript - 使用内部 HTML 添加输入字段

javascript - 使用 javascript(或 jQuery)选择和操作 CSS 伪元素,例如::before 和::after

html - 如何通过:after?在CSS中添加两颗星

javascript - 使用 jQuery 访问动态创建的元素

html - 带有焦点中心元素的 CSS 盒装布局