发布于 4年前

css 实现溢出滚动的内容渐变

>>> 效果预览

向溢出元素添加渐变以更好地指示有更多内容需要滚动。

HTML

<div class="overflow-scroll-gradient">
  <div class="overflow-scroll-gradient__scroller">
    Content to be scrolled
  </div>
</div>

CSS

.overflow-scroll-gradient {
  position: relative;
}
.overflow-scroll-gradient::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: 240px;
  height: 25px;
  background: linear-gradient(
    rgba(255, 255, 255, 0.001),
    white
  ); /* transparent keyword is broken in Safari */
  pointer-events: none;
}
.overflow-scroll-gradient__scroller {
  overflow-y: scroll;
  background: white;
  width: 240px;
  height: 200px;
  padding: 15px 0;
  line-height: 1.2;
  text-align: center;
}

说明

  1. position: relative 在父级上为伪元素建立笛卡尔定位上下文。
  2. ::after 定义伪元素。
  3. background-image: linear-gradient(...) 添加从透明渐变为白色(从上到下)的线性渐变。
  4. position: absolute 从文档流中取出伪元素,并将其相对于父元素定位。
  5. width: 240px 匹配滚动元素的大小(它是具有伪元素的父元素的子元素)。
  6. height: 25px 是衰落梯度伪元素的高度,应当保持相对较小。
  7. bottom: 0 将伪元素定位在父元素的底部。
  8. pointer-events: none 指定伪元素不能是鼠标事件的目标,允许其后面的文本仍然是可选/交互式的。
©2020 edoou.com   京ICP备16001874号-3