删除线
删除线是 Markdown 的扩展语法,用于表示已被删除或不再有效的文本。它在文档修订、任务列表、价格变动等场景中非常实用。
基本语法
标准语法
在 Markdown 中,删除线通常使用两个波浪线(~~
)将要添加删除线的文本包围起来:
markdown
这是一段包含~~删除线文本~~的示例。
渲染效果:
这是一段包含删除线文本的示例。
词组和句子
删除线可以应用于单个词语或整个句子:
markdown
~~这整个句子都被划上了删除线。~~
我们将在下周~~周一~~周二开会。
渲染效果:
这整个句子都被划上了删除线。
我们将在下周周一周二开会。
高级用法
与其他格式化结合使用
删除线可以与其他 Markdown 格式结合使用:
markdown
~~**粗体删除线**~~
~~*斜体删除线*~~
~~***粗体斜体删除线***~~
~~`代码删除线`~~
~~[链接删除线](https://www.markdownlang.com)~~
渲染效果:
粗体删除线
斜体删除线
粗体斜体删除线
代码删除线
段落和块级元素
在某些 Markdown 实现中,删除线可以应用于整个段落或块级元素:
markdown
~~
这是一个完整的被删除的段落。
它可以包含多行内容。
~~
注意:不是所有 Markdown 处理器都支持跨多行的删除线语法。对于跨多行内容,最安全的方法是在每一行单独使用删除线语法。
兼容性和实现差异
不同平台支持情况
平台/工具 | 删除线支持 | 语法 |
---|---|---|
GitHub Markdown | ✅ | ~~删除线~~ |
GitLab Markdown | ✅ | ~~删除线~~ |
Stack Overflow | ✅ | ~~删除线~~ |
Discord | ✅ | ~~删除线~~ |
✅ | ~~删除线~~ | |
CommonMark | ✅ | ~~删除线~~ |
VitePress | ✅ | ~~删除线~~ |
Pandoc | ✅ | ~~删除线~~ |
HTML 输出格式
大多数 Markdown 处理器会将删除线转换为 HTML <del>
或 <s>
标签:
html
<!-- 使用 <del> 标签 -->
<p>这是一段包含<del>删除线文本</del>的示例。</p>
<!-- 或使用 <s> 标签 -->
<p>这是一段包含<s>删除线文本</s>的示例。</p>
替代语法
某些平台或旧版本 Markdown 可能支持不同的删除线语法:
markdown
<!-- 单波浪线(某些平台) -->
~删除线文本~
<!-- HTML 标签(所有符合规范的 Markdown 处理器) -->
<del>删除线文本</del>
<s>删除线文本</s>
使用场景
文档修订
删除线常用于显示文档修订和更改:
markdown
# 项目计划 v2.0
## 时间表
- 需求分析:~~3月1日-3月15日~~ 3月1日-3月20日(延期)
- 设计阶段:~~3月16日-4月5日~~ 3月21日-4月10日
- 开发阶段:4月11日-5月15日
- 测试阶段:5月16日-5月30日
- 发布日期:~~6月1日~~ 6月15日
渲染效果:
项目计划 v2.0
时间表
- 需求分析:
3月1日-3月15日3月1日-3月20日(延期) - 设计阶段:
3月16日-4月5日3月21日-4月10日 - 开发阶段:4月11日-5月15日
- 测试阶段:5月16日-5月30日
- 发布日期:
6月1日6月15日
任务列表
删除线结合复选框可创建更直观的任务列表:
markdown
## 本周任务
- [x] ~~完成项目提案~~
- [x] ~~与客户会面讨论需求~~
- [ ] 创建设计原型
- [ ] 编写技术规格文档
- [ ] 准备预算估算
渲染效果:
本周任务
- [x]
完成项目提案 - [x]
与客户会面讨论需求 - [ ] 创建设计原型
- [ ] 编写技术规格文档
- [ ] 准备预算估算
价格和促销
删除线在电子商务和促销内容中非常有用:
markdown
## 特价商品
- 高性能笔记本电脑:~~¥8,999~~ ¥7,499
- 无线耳机:~~¥1,299~~ ¥999
- 智能手表:~~¥2,499~~ ¥1,999
*促销截止日期:2023年12月31日*
渲染效果:
特价商品
- 高性能笔记本电脑:
¥8,999¥7,499 - 无线耳机:
¥1,299¥999 - 智能手表:
¥2,499¥1,999
促销截止日期:2023年12月31日
幽默和强调
删除线有时用于表达幽默或强调:
markdown
今天的会议~~非常无聊~~非常有成效。
我~~讨厌~~喜欢编写文档。
这个项目~~可能会失败~~必将成功!
渲染效果:
今天的会议非常无聊非常有成效。
我讨厌喜欢编写文档。
这个项目可能会失败必将成功!
最佳实践
用法建议
markdown
✅ 推荐做法:
1. **清晰表达修改**:
- 删除旧内容,添加新内容
- 例如: ~~错误版本~~ 正确版本
2. **简洁使用**:
- 避免过多删除线内容影响可读性
- 考虑是否真的需要保留旧内容
3. **与其他标记结合**:
- 在任务列表中结合复选框使用
- 与其他格式化结合增强表现力
❌ 避免做法:
1. 删除线内使用过多复杂格式
2. 大段文本全部使用删除线(影响可读性)
3. 在重要文档中过度使用幽默性删除线
4. 对整篇文档或多个段落应用删除线
无障碍性考虑
删除线可能对屏幕阅读器用户造成混淆。考虑以下几点:
- 为删除线内容添加上下文说明
- 考虑使用其他方式(如括号、注释)来表示废弃内容
- 如果内容真的不再相关,考虑完全删除而不是使用删除线
markdown
<!-- 更好的可访问性写法 -->
项目截止日期:3月15日(已更新:原计划3月1日)
<!-- 而不是 -->
项目截止日期:~~3月1日~~ 3月15日
常见问题解决
删除线不显示
如果您的删除线没有正确显示:
- 确认使用的是两个波浪线
~~
,而不是一个~
- 检查波浪线和文本之间是否有空格(不应有空格)
- 验证您的 Markdown 处理器是否支持删除线语法
- 尝试使用 HTML
<del>
标签作为替代
复杂格式问题
当删除线与其他格式结合使用时可能出现问题:
markdown
<!-- 可能有问题的写法 -->
~~**[复杂格式](https://www.markdownlang.com)**~~
<!-- 更安全的写法 -->
<del>**[复杂格式](https://www.markdownlang.com)**</del>
多段落删除线
对于需要跨多个段落的删除线,最好使用 HTML:
markdown
<del>
这是第一个被删除的段落。
这是第二个被删除的段落。
</del>
相关语法
总结
删除线是一个简单但功能强大的 Markdown 扩展语法,它提供了一种直观的方式来表示文本修改、完成的任务或过时的信息。通过合理使用删除线,可以使文档更加清晰、生动,让读者更容易理解内容的演变过程。