del标签的cite属性必须是可点击验证的真实URL,datetime须为合法ISO 8601时间戳,del与ins必须物理相邻且无文本节点插入,三者缺一不可构成可追溯修订单。

del 标签的 cite 属性必须是可点击、可验证的真实链接
它不是备注栏,不能填“编辑说明”或“运营调整”这类模糊文本。cite 的唯一作用是让读者(或机器)能点进去确认“为什么删”。
- ✅ 有效写法:
cite="https://our-cms.example.com/pr/1234"(指向真实 PR 页面,含评审记录) - ✅ 可接受:
cite="/docs/policy-v2.1#section-5"(内部文档锚点,内容明确说明变更依据) - ❌ 无效:
cite="会议纪要-20260515"(无协议头,非 URL,读屏软件无法跳转) - ❌ 无效:
cite=""或cite="null"(空值或伪值,语义完全失效) - ❌ 无效:
cite="https://example.com/404"(链接不可达,等同于没提供依据)
datetime 必须是合法 ISO 8601 秒级时间戳,否则静默丢弃
浏览器不报错,但所有严肃工具(读屏软件、CMS 版本对比模块、Git diff 渲染器)会直接跳过该属性。填错 = 没填。
- ✅ 正确:
datetime="2026-06-28T10:15:33Z"(UTC 时间,推荐) - ✅ 正确:
datetime="2026-06-28T18:15:33+08:00"(带本地时区偏移) - ❌ 无效:
datetime="2026-06-28"(缺时分秒) - ❌ 无效:
datetime="2026/06/28"(斜杠分隔,非标准) - ❌ 无效:
datetime="2026-06-28 10:15"(缺T和秒)
del 和 ins 必须物理相邻,中间不能有空格或文本节点
DOM 中一旦插入任何东西(哪怕是一个中文顿号、一个箭头符号、甚至一个空格),就破坏语义配对。屏幕阅读器读不出“删了什么→替换成什么”。
- ✅ 正确:
<del datetime="2026-06-28T10:15:33Z">旧参数</del><ins datetime="2026-06-28T10:15:47Z">新参数</ins> - ❌ 错误:
<del>旧参数</del> → <ins>新参数</ins>(箭头是文本节点) - ⚠️ 危险:
<del>A</del><ins>B</ins>(<span>内部空格会被解析为文本节点,中断连续性) - 多人并行修改时,服务端必须按
datetime排序合并,不能简单拼接——否则生成<del>A</del><ins>B</ins><del>C</del><ins>D</ins>这种无法解读的链式结构
块级内容包裹时需显式设置 display: inline-block
<del> 和 <ins> 默认是 inline 元素,但 HTML 规范允许它包含 <p>、<ul> 等块级内容。若不加样式控制,渲染会错乱或折叠。
立即学习“前端免费学习笔记(深入)”;
- 必须加 CSS:
del, ins { display: inline-block; } - 否则
<del><p>段落内容</p></del>可能被截断、换行异常或丢失语义边界 - 不要依赖默认行为——不同浏览器对 inline 元素包裹块级内容的处理差异很大
datetime 合法、cite 可验证。少一个,就只是加了删除线的普通文本。



















