Skip to content

删除线

删除线是 Markdown 的扩展语法,用于表示已被删除或不再有效的文本。它在文档修订、任务列表、价格变动等场景中非常实用。

基本语法

标准语法

在 Markdown 中,删除线通常使用两个波浪线(~~)将要添加删除线的文本包围起来:

markdown
这是一段包含~~删除线文本~~的示例。

渲染效果

这是一段包含删除线文本的示例。

词组和句子

删除线可以应用于单个词语或整个句子:

markdown
~~这整个句子都被划上了删除线。~~

我们将在下周~~周一~~周二开会。

渲染效果

这整个句子都被划上了删除线。

我们将在下周周一周二开会。

高级用法

与其他格式化结合使用

删除线可以与其他 Markdown 格式结合使用:

markdown
~~**粗体删除线**~~

~~*斜体删除线*~~

~~***粗体斜体删除线***~~

~~`代码删除线`~~

~~[链接删除线](https://www.markdownlang.com)~~

渲染效果

粗体删除线

斜体删除线

粗体斜体删除线

代码删除线

链接删除线

段落和块级元素

在某些 Markdown 实现中,删除线可以应用于整个段落或块级元素:

markdown
~~
这是一个完整的被删除的段落。
它可以包含多行内容。
~~

注意:不是所有 Markdown 处理器都支持跨多行的删除线语法。对于跨多行内容,最安全的方法是在每一行单独使用删除线语法。

兼容性和实现差异

不同平台支持情况

平台/工具删除线支持语法
GitHub Markdown~~删除线~~
GitLab Markdown~~删除线~~
Stack Overflow~~删除线~~
Discord~~删除线~~
Reddit~~删除线~~
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. 对整篇文档或多个段落应用删除线

无障碍性考虑

删除线可能对屏幕阅读器用户造成混淆。考虑以下几点:

  1. 为删除线内容添加上下文说明
  2. 考虑使用其他方式(如括号、注释)来表示废弃内容
  3. 如果内容真的不再相关,考虑完全删除而不是使用删除线
markdown
<!-- 更好的可访问性写法 -->
项目截止日期:3月15日(已更新:原计划3月1日)

<!-- 而不是 -->
项目截止日期:~~3月1日~~ 3月15日

常见问题解决

删除线不显示

如果您的删除线没有正确显示:

  1. 确认使用的是两个波浪线 ~~,而不是一个 ~
  2. 检查波浪线和文本之间是否有空格(不应有空格)
  3. 验证您的 Markdown 处理器是否支持删除线语法
  4. 尝试使用 HTML <del> 标签作为替代

复杂格式问题

当删除线与其他格式结合使用时可能出现问题:

markdown
<!-- 可能有问题的写法 -->
~~**[复杂格式](https://www.markdownlang.com)**~~

<!-- 更安全的写法 -->
<del>**[复杂格式](https://www.markdownlang.com)**</del>

多段落删除线

对于需要跨多个段落的删除线,最好使用 HTML:

markdown
<del>
这是第一个被删除的段落。

这是第二个被删除的段落。
</del>

相关语法

  • 任务列表 - 创建交互式任务列表
  • 强调 - 文本强调语法(粗体、斜体)
  • HTML - 在 Markdown 中使用 HTML

总结

删除线是一个简单但功能强大的 Markdown 扩展语法,它提供了一种直观的方式来表示文本修改、完成的任务或过时的信息。通过合理使用删除线,可以使文档更加清晰、生动,让读者更容易理解内容的演变过程。

由 Markdownlang.com 整理创建