在HTML5中不合法,是唯一被规范支持的删除线标签;语义为内容过时但有参考价值,不可包裹表格行或添加datetime属性。

是现代标准, 已被 HTML5 明确废弃
直接结论: 在 HTML5 中不合法,任何使用它的文档都无法通过 W3C 验证; 是当前唯一被规范支持的、语义明确的删除线标签(除 外)。它不是“替代品”,而是标准演进后的正式成员。
为什么 被淘汰?不只是“老了”
废弃原因不是浏览器不支持,而是语义缺失 + 规范失控:
-
从 HTML 2.0 就存在,但始终没有定义其语义——它只说“要划掉”,没说“为什么划掉”“是否还保留意义” - HTML4 和 XHTML 1.0 Strict 已标记为 deprecated(不赞成使用),W3C 明确要求用
或替代 - 浏览器即使渲染了
,也会在 DOM 解析时自动修正结构(比如把... 拆成无效片段),导致样式错位或辅助技术无法识别 的真实语义边界:别当“划线快捷键”用不是视觉装饰工具,它声明的是内容状态变化:- 适用场景:
¥199¥99(原价失效)、旧版 API 接口(已停用)、第 3.2 条(条款废止但需存档对照) - 不适用场景:用户点击“完成任务”后动态划掉待办项(这是 UI 反馈,该用 CSS 类);Git diff 中标记被删代码(该用
+datetime) - 关键限制:
不支持cite或datetime属性,强行添加会被校验器报错;嵌套会混淆语义,屏幕阅读器可能重复播报“deleted”和“strikethrough”xxx
表格整行划线时,
必须拆到每个里 试图用
是无效结构——... 属于短语内容(phrasing content),不能包裹这类流内容(flow content)元素。浏览器会把它“踢出”表格上下文,导致样式丢失或 DOM 错乱。 正确做法只有这一种:
<tr> <td><s>Row 2 Col 1</s></td> <td><s>Row 2 Col 2</s></td> <td><s>Row 2 Col 3</s></td> </tr>
如果整行语义是“已被逻辑删除”,优先选
;如果是“信息过时但仍有参考价值”,才用。两者都不能省略对每个单元格的包裹——这是 HTML 结构约束,不是样式取舍问题。 - 适用场景:
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











