text-stroke需同时写-webkit-text-stroke和text-stroke以兼容各浏览器;仅支持px/pt等绝对单位;透明描边需配合color: transparent实现镂空效果;其渲染本质区别于drop-shadow,且不触发重排但可能与字体平滑冲突。
text-stroke 在 Chrome/Firefox 中能直接用,但 Safari 需要 -webkit- 前缀
原生
不是所有浏览器都开箱即用。Chrome 和 Firefox 支持标准写法,Safari 15.4+ 虽已支持无前缀版本,但旧版(尤其是 iOS Safari)仍依赖
。不加前缀时,部分 iOS 用户会看到纯色文字、描边完全失效。
必须同时写两行:
和
不能只靠
前缀“兼容”——现代 Chrome 也认标准属性,漏掉它反而在某些 Chromium 新版本中失效
不支持
、
等相对单位,只能用
、
或无单位数值(如
表示 2px)
描边颜色透明时,文字内容会“消失”,不是 bug 是渲染逻辑
当设
,文字本体(
)若没显式设置,浏览器会按默认文本色渲染——但描边盖在文字边缘,透明描边 + 默认色文字 = 视觉上只剩一个模糊色块或干脆看不见。这不是样式没生效,而是描边层把文字“抠”出了空洞。
必须配
才能得到纯描边效果(即只有边框,内部全透)
如果只想让描边变浅,别用
,改用带 alpha 的色值,比如
在深色背景上用
+
是最稳的“镂空字”方案
滤镜描边(drop-shadow)和 text-stroke 渲染本质不同,别混着调
是文字轮廓描边,紧贴字形路径;
是对整个文字盒做投影,会发虚、偏移、受
影响,且无法控制内/外描边方向。
看似像描边,实际是模糊半径为 2px 的阴影,缩放或高清屏下边缘毛糙
多层
叠加(如模拟双色描边)会导致性能下降,尤其在滚动容器里
真正需要“外描边+内发光”或“渐变描边”时,
无能为力,得切 SVG 或用
+
配合渐变背景
text-stroke 不触发重排,但和 font-smoothing 冲突时会糊字
本身是纯绘制层操作,不影响布局流,这点比伪元素描边轻量。但它和
或
共存时,某些字体(尤其是细体、无衬线体)会出现描边锯齿或文字发虚。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
Mac Safari 下建议加
,避免描边边缘生硬
Windows Chrome 若开启 ClearType,
容易和子像素渲染打架,描边看起来断续——此时换用
(需配合 SVG 文字)更可靠
描边宽度超过 3px 后,小字号文字(≤14px)识别度骤降,不是代码问题,是可读性阈值到了
实际项目里,最常被忽略的是描边与文字层级关系:它永远画在文字填充之上,但不会遮挡相邻元素的 z-index。如果描边要“压住”后面的内容,得靠父容器
+
控制,而不是指望描边自己抢层。
text-stroke-webkit-text-stroke-webkit-text-stroke: 2px #ff6b6b;text-stroke: 2px #ff6b6b;-webkit-text-strokeemrempxpt2-webkit-text-stroke: 2px transparentcolorcolor: transparenttransparentrgba(0,0,0,0.3)color: transparent-webkit-text-stroke: 1px whitetext-strokefilter: drop-shadow()border-radiusdrop-shadow(0 0 2px #000)drop-shadowtext-strokebackground-clip: texttext-fill-color: transparenttext-stroke-webkit-font-smoothingfont-smooth-webkit-font-smoothing: antialiased;text-strokepaint-order: stroke fillposition: relativez-index