<del>是唯一语义正确的删除标记,用于传达逻辑性删除而非视觉效果;datetime属性须严格遵循ISO 8601格式并加双引号,否则失效;必须包裹完整语义单元,不可破坏DOM结构或跨块级元素使用。

<del> 是唯一语义正确的标记方式,不是为了加删除线,而是告诉浏览器“这段内容已被逻辑性删除”。用 <s> 或纯 CSS 的 text-decoration: line-through 都无法传递这一语义,屏幕阅读器不会读出“已删除”,搜索引擎也不会识别为修订行为。
datetime 属性必须严格符合 ISO 8601 格式,否则静默失效
浏览器不报错、不警告,但非法值会被直接忽略——del 就只剩视觉样式,失去机器可读的时间语义。
- ✅ 合法写法(必须带双引号):
datetime="2026-08-11T13:41:00+08:00"、datetime="2026-08-11"、datetime="2026-08-11T05:41:00Z" - ❌ 常见错误:
datetime=2026-08-11(缺引号)、datetime="2026/08/11"(斜杠)、datetime="2026-08-11 13:41"(缺T和时区) - 后端生成时,Python 用
datetime.isoformat(),Node.js 用new Date().toISOString(),PHP 模板避免date('Y-m-d H:i:s')(缺T/Z) - 前端 JS 动态插入时,绝不能用
new Date().toString()或toLocaleString(),它们输出格式不可控
del 必须包裹完整语义单元,不能破坏 DOM 结构
它不是装饰工具,而是语义容器。随意截断词、嵌套未闭合标签或跨块级元素包裹,会引发解析异常和无障碍问题。
- ❌ 错误:
<del><strong>促销价</del></strong>(标签错位)、<del><div>整段说明</div></del>(<div>默认是块级,<del>是内联,需显式设display: inline-block) - ✅ 正确:包裹完整价格、句子或短语,例如
<del datetime="2026-08-11T13:41:00+08:00">¥299</del> - 若内容仍需交互(如被删的链接还允许点击),必须显式加
pointer-events: auto;若禁用,则配合aria-disabled="true"和tabindex="-1"
datetime 不影响样式,但决定下游工具能否正确解析修订时间
它不控制删除线颜色、粗细或位置,但直接影响屏幕阅读器(在详细模式下可读出时间)、CMS 内容比对、合规审计和 SEO 快照判断。
立即学习“前端免费学习笔记(深入)”;
- JS 读取时用
delElement.dateTime(返回字符串)或delElement.getAttribute('datetime'),注意它不会自动转成Date对象 -
cite属性虽无默认渲染,但会被读屏器读出,也保留在 DOM 中供 JS 提取依据链接 - 没写
datetime不报错,但在需要追溯修改时间的场景(如合同修订、医疗文档、审计日志)中,等于放弃关键元数据
真正容易被忽略的是:<del> 只是一个“此刻快照”,它本身不保存历史版本。要实现可回溯的修订轨迹,必须配合服务端存档、前端 diff 日志或版本控制系统——标签只是语义入口,不是版本管理器。



















