<s>仅用于标记内容自身失效(如过期价格、废止条款),不表示删除动作,不支持datetime/cite属性,禁作视觉装饰。

<s> 标签只适合标记「曾经准确、现已失效」的信息,比如过期价格、停用功能名、废止条款;它不表示编辑行为,也不支持时间记录,误用会导致语义丢失或合规风险。
什么时候该用 <s> 而不是 <del>
<s> 的核心用途是表达内容自身状态变化,而非人为删除动作。常见适用场景包括:
- 商品页面中“
<s>¥199</s>> ¥99”——原价已失效,非被编辑者删掉</li> <li>文档里写“已停用旧参数:<code><s>timeout_ms</s>>”,后台接口废弃但无明确替换项</li> <li>法律条文草案中标注“<code><s>第十二条第二款</s>>(已废止)”,不涉及修订痕迹存证</li> </ul> <p>反例:版本日志写“移除了 <code><s>getUserInfo()</s>>”——这是明确的删除行为,必须用 <code><del>
。<s>不支持datetime和cite属性HTML5 明确禁止给
<s>添加datetime或cite。强行加上会导致 W3C 校验失败,部分静态站点生成器(如 Hugo 严格模式)会直接拒绝构建。若需补充时间信息,可采用以下兼容方案:
- 在
<s>后紧跟<time datetime="2026-03-21">(已下架)</time> - 用自定义属性
data-expired="2026-03-21"辅助 JS 处理,但屏幕阅读器不会识别 - 若必须带时间+原因,请直接换用
<del datetime="2026-03-21" cite="/docs/dep-notice.html">
别把
<s>当视觉装饰用<s>是语义标签,不是 CSS 替代品。以下情况不该用它:- 待办事项打钩后加删除线(纯 UI 状态反馈)
- 设计稿标注“此模块暂不实现”(未上线 ≠ 内容失效)
- 用户评论质疑“这个参数不对”(主观判断 ≠ 客观失效)
这些场景应使用 CSS
text-decoration: line-through或其他样式控制,避免污染语义结构。真正容易被忽略的是:很多团队看到“有删除线效果”就随手套
<s>,结果既没传达内容状态,也没留下可审计依据——它既不是<del>,也不是span,用错位置,就只剩一条没人能解释的横线。 - 在


















