跳到正文

描边文字

Text Stroke

文字只留一圈轮廓、里面是空的,大标题一下就硬起来了。

  • 又叫:
  • 空心字
  • 描边字
  • 轮廓文字
  • text stroke
  • outlined text
  • hollow text
  • text outline
展厅
排版与文字
形态
固定舞台
播放
常驻循环
关键词
纯 CSS / 新 CSS 特性 / 可以直接用
T-07形态 固定舞台播放 常驻循环Text Stroke

参数工作台

复制给 AI

随参数实时更新

做一个描边标题:字号 56px,用 -webkit-text-stroke: 2px 描边,填充设为 transparent,做成空心字,并加 paint-order: stroke fill 让描边先画。描边宽度用 px 固定别用 em;只描边不填充时保证对比度,小字号不要用这个效果。

什么时候用

  • 首屏大标题、封面字,想要比实心字更轻的体量
  • 深色或图片背景上,需要文字有明确的轮廓边界
  • 做「描边 + 实心」两层排版,一虚一实叠出层次

适用场景:文字 / 页面 / 卡片

推荐取值

描边宽度
1–3px(大字号)
建议字号
≥ 32px
绘制顺序
paint-order: stroke fill
空心写法
color: transparent + -webkit-text-stroke
对比度
正文级别的文字 ≥ 4.5:1

别搞混

  • 和「文字阴影」的区别

    text-shadow 画在字形外面,字本身的分量不变;text-stroke 是沿字形轮廓描一圈,笔画会被描边吃掉一半,字看起来更细。

  • 和「渐变文字」的区别

    渐变文字填充的是字形内部;描边字内部是空的。想要「渐变填充 + 描边」就把两者叠加。

    容易混的去看「渐变文字」

容易踩的坑

  • -webkit-text-stroke 是非标准属性(三大引擎都支持),它从轮廓中线向两侧画:小字号加粗描边会把细笔画糊掉,所以只给大字号用
  • 描边宽度用 px 固定,别用 em 跟着字号放大,否则大标题上的笔画全被吃掉
  • 只描边不填充时必须保证对比度:空心字放在浅色底上几乎看不见
  • 加 paint-order: stroke fill 能让描边先画、填充后画,避免描边压住字面
  • 描边色和填充色相同时,效果等于把字加粗,容易显得脏
  • 不要为了描边去用 SVG path 假字:读屏和文本选择都会坏掉

无障碍降级

描边文字是静态的,不需要降级;如果给它加了进出场描边动画,prefers-reduced-motion 下直接显示最终态。

关键词

  • -webkit-text-stroke
  • text-stroke
  • paint-order
  • outlined text
  • hollow text
  • color: transparent
  • @supports
  • stroke-width

参考

相关展品