CSS 视觉 - 对溢出的内容进行渐变

本贴最后更新于 1976 天前,其中的信息可能已经物是人非

2019-07-30

描述

为溢出的元素添加一个渐变消失的效果,使用更友好的方式告知用户滚动后可以获取更多内容。

HTML

<div class="overflow-scroll-gradient">
  <div class="overflow-scroll-gradient__scroller">
    Lorem ipsum dolor sit amet consectetur adipisicing elit. <br />
    Iure id exercitationem nulla qui repellat laborum vitae, <br />
    molestias tempora velit natus. Quas, assumenda nisi. <br />
    Quisquam enim qui iure, consequatur velit sit? <br />
    Lorem ipsum dolor sit amet consectetur adipisicing elit.<br />
    Iure id exercitationem nulla qui repellat laborum vitae, <br />
    molestias tempora velit natus. Quas, assumenda nisi. <br />
    Quisquam enim qui iure, consequatur velit sit?
  </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: 150px;
  padding: 15px;
  line-height: 1.2;
}

Demo

说明

  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 使伪元素不能做为鼠标事件的对象,但允许其后的文本被选中或进行交互

浏览器支持

支持率:97.5%
支持情况:https://caniuse.com/#feat=css-gradients

返回总目录

每天 30 秒系列之 CSS

  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    196 引用 • 540 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
Vanessa
我们终此一生,就是要摆脱他人的期待,找到真正的自己。 昆明