dob
← 全部笔记

· CSS

CSS 两种「渐隐」不是一回事

opacity 让整块元素消失,linear-gradient 只让边缘融进背景。两者可以叠。

opacity:整块消失

元素透明度从 1 到 0,没有方向。适合出现 / 消失、转场、模态框。

.fade-out {
  opacity: 0;
  transition: opacity .25s ease;
}

linear-gradient:边缘融进背景

元素还在,只是颜色沿某个方向变成透明。适合文字溢出用 mask-image 做省略、图片贴边、滚动区域底部那条「下面还有」的提示。

.fade-edge {
  -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent);
          mask-image: linear-gradient(to bottom, #000 70%, transparent);
}

叠在一起

线性渐变给方向,opacity 给整体退场。单独用 opacity,消失会有点「啪」一下;加一条方向,过程更像纸被抽走。

记这一句就够:要消失,用 opacity;要融入,用渐变。