删除线
Markdown删除线语法:GFM扩展、使用场景与跨平台兼容性。
1. 删除线语法
1.1 基本语法
删除线使用两个波浪号 ~~ 包裹文本:
~~这段文字会被加上删除线~~
渲染结果:这段文字会被加上删除线
1.2 语法规则
| 规则 | 正确 | 错误 |
|---|---|---|
| 两个波浪号 | ~~文本~~ | ~文本~(单波浪号无效) |
| 紧贴文本 | ~~文本~~ | ~~ 文本 ~~(空格会被保留) |
| 成对出现 | ~~文本~~ | ~~文本(未闭合) |
1.3 与强调组合
删除线可以与其他行内格式组合使用:
~~_删除且斜体_~~
~~**删除且粗体**~~
~~**_删除且粗斜体_**~~
~~`删除的代码`~~
**~~粗体且删除~~**
2. 使用场景
2.1 价格标注
限时优惠:~~¥299~~ ¥199
渲染:¥299 ¥199
2.2 文档修订
项目使用 ~~Webpack~~ Vite 作为构建工具。
渲染:项目使用 Webpack Vite 作为构建工具。
2.3 废弃标记
- ~~旧版 API 已废弃~~
- 新版 API 请参考 v3 文档
2.4 任务列表
- [x] ~~需求分析~~ 已完成
- [ ] 开发实现
2.5 变更记录
## v2.0.0 变更
- ~~`oldMethod()`~~ → `newMethod()`
- ~~`Config.default`~~ → `Config.defaults`
3. HTML 替代
当平台不支持 GFM 删除线时,可以使用 HTML 标签:
<s>这段文字会被加上删除线</s>
<del>这段文字会被加上删除线</del>
<strike>这段文字会被加上删除线</strike>
三种标签的区别:
| 标签 | HTML 标准 | 语义 | 推荐度 |
|---|---|---|---|
<del> | HTML5 | 表示已删除的内容 | ⭐⭐⭐ |
<s> | HTML5 | 表示不再准确的内容 | ⭐⭐ |
<strike> | 已废弃 | 无语义 | ⭐ |
<del> 标签还可以添加属性:
<del datetime="2026-06-14">已删除的内容</del>
<del cite="https://example.com/reason">删除原因见链接</del>
4. 跨平台支持
| 平台 | ~~语法~~ | <del> | <s> |
|---|---|---|---|
| GitHub | |||
| GitLab | |||
| CommonMark | |||
| Obsidian | |||
| Typora | |||
| Hugo | (需配置) | ||
| Jekyll | (需插件) |
5. 注意事项
5.1 常见问题
- 中文间距:
~~中文~~在某些渲染器中可能显示异常,建议测试 - 嵌套问题:
~~**文本**~~可以工作,但**~~文本~~**在某些解析器中结果不同 - 行内代码:
~~代码“~~` 中删除线不会作用于代码内容
5.2 可访问性
屏幕阅读器对删除线的处理方式不同:
- 部分阅读器会朗读”删除开始…删除结束”
- 部分阅读器直接跳过删除线内容
- 建议在重要场景使用文字说明替代纯删除线