贝利信息

HTML5如何给文字加删除线颜色_textdecorationcolor自定义【详解】

日期:2026-01-09 00:00 / 作者:絕刀狂花
text-decoration-color能单独设置删除线颜色,但必须与text-decoration-line: line-through配合使用,否则无效;不支持渐变色,旧版Safari和IE不支持,兼容性差时可用伪元素模拟。

text-decoration-color 能不能单独给删除线设颜色

可以,但必须和 text-decoration-line 一起用,不能单独生效。浏览器会忽略只有 text-decoration-color 没有声明删除线类型的样式。

为什么设置了 text-decoration-color 却没变色

常见原因不是语法错,而是被其他文本装饰覆盖或继承干扰。最典型的是:

/* ❌ 错误:只设颜色,没显式声明 line-through */
.deleted {
  text-decoration-color: #ff6b6b;
}

/ ✅ 正确:必须同时指定类型 / .deleted { text-decoration-line: line-through; text-decoration-color: #ff6b6b; }

兼容性差时怎么安全实现红删除线

当需要支持 Safari 12 或更低版本、或某些安卓 WebView 时,text-decoration-color 会静默失效。稳妥做法是用伪元素模拟:

.custom-strike::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.2em;
  height: 1px;
  background-color: #ff6b6b;
  pointer-events: none;
}

text-decoration-thickness 和 color 配合用要注意什么

Chrome 89+ 和 Firefox 70+ 支持 text-decoration-thickness 控制删除线粗细,但它和 color 是同级属性,顺序无关,但必须共存于同一元素且都启用 line-through

真正难搞的不是写法,是跨浏览器下删除线在不同字号、不同字体中的垂直对齐一致性——这没有通用解,只能按主力字体微调 text-underline-offset 或伪元素 bottom 值。