跳到主内容
首页博客Markdown 水平线:分隔线、规则与常见问题修复

Markdown 水平线:分隔线、规则与常见问题修复

使用 ---、*** 或 ___ 创建 Markdown 水平线。了解分隔线为何变成标题、缩进如何影响渲染,以及何时应使用换行。

发布于:

要在 Markdown 中添加水平线,请将三个连字符单独放在一行,并在上下各留一行空行:

第一节结束。

---

下一节开始。

结果是在两个段落之间显示一条分隔线。Markdown 将其称为主题分隔符,HTML 用 <hr> 表示。将示例粘贴到 Markdown 查看器,即可检查渲染后的文档。

三种分隔线写法

以下写法都会生成主题分隔符:

Markdown 源码 结果
--- 水平分隔线
*** 水平分隔线
___ 水平分隔线
* * * 水平分隔线

至少使用三个相同的连字符、星号或下划线。标记之间允许有空格。混用标记类型、在同一行添加文字或只使用两个标记,都不会生成分隔线。这些规则来自 CommonMark 主题分隔符规范

连字符的数量不会控制分隔线的显示宽度。20 个连字符与三个连字符生成相同的 HTML 元素,最终外观由目标平台的样式决定。

为什么水平线变成了标题?

下面的源码不会在“更新说明”下方放置分隔线:

更新说明
---

它会生成二级标题。紧接在段落文本下方的连字符可以构成 Setext 标题,这种解释优先于水平线。添加空行即可将两者分开:

更新说明

---

对于文档章节,明确写出标题通常更清晰:

## 更新说明

导入流程现已支持 CSV 文件。

使用 Markdown 标题标识章节。如果内容之间的转折本身有意义,例如将信件与附录分开,则可以使用水平线。

为什么分隔线显示成了普通文本?

检查分隔线附近的源码:

现象 可能原因 修复方法
预览在代码块中显示 --- 独立块开头有四个空格,或代码围栏尚未关闭 移除缩进或关闭代码围栏
预览显示 -- 只有两个连字符 使用三个或更多
标记旁边出现文字 同一行包含其他文字 将标记单独放在一行
句子中直接显示 --- 标记被反引号包围 需要分隔线时移除反引号
前一段变成了标题 --- 上方没有空行 插入空行

在文档顶层,主题分隔符最多允许三个前导空格。在列表中,缩进还决定内容属于哪个列表项,因此应检查周围的列表结构,而不是删除所有空格。

水平线与换行不同

分隔线用于分开章节,并不只是把后面的文字移到下一行。

对于地址,请使用硬换行:

市场街 120 号\
加利福尼亚州旧金山

要新建段落,请留一行空行。要分隔章节,请将 --- 单独放在一行。Markdown 换行指南解释了尾部空格、反斜杠,以及 GitHub 文件与评论中不同的换行行为。

在引用中放置分隔线

每一行都保留 > 前缀,包括分隔线和空行:

> 原始提案。
>
> ---
>
> 审阅者补充的背景信息。

这样分隔线会留在引用内部。移除分隔线前的 > 可能结束引用,并把分隔线移到外层文档。有关多段落和嵌套引用,请参阅引用示例

表格分隔行不是水平线

下面的分隔行属于表格:

| 格式 | 可编辑 |
| --- | :---: |
| Markdown | 是 |

竖线和可选的冒号描述的是列,不会插入横跨页面的分隔线。可使用 Markdown 表格生成器创建表格;如果数据已存在于电子表格中,可使用 CSV 转 Markdown 转换器

水平线与导出文档

主题分隔符不是分页命令。PDF 或 Word 导出工具根据布局与分页规则决定页面在哪里结束。不要添加更多连字符,并期待下一节因此从新的一页开始。

如果你能控制网页的 CSS,可以在网站样式表中设置生成的 <hr> 的样式。托管式 Markdown 服务可能不允许自定义 CSS。请检查最终发布位置或导出文档,尤其当分隔线所传达的含义在打印后仍需保留时。

常见问题

水平线上下需要空行吗?

CommonMark 并非在所有场景都要求空行,但保留空行可以避免 --- 被识别为标题的常见歧义,也让源文件更易读。

可以使用 HTML 的 hr 标签吗?

允许原始 HTML 的渲染器支持 <hr>。对于 Markdown 文档,使用 --- 更合适。MD File Viewer 编辑器会移除用户输入的 HTML 标签,但会正常渲染 Markdown 分隔线语法。

如何显示三个连字符而不生成分隔线?

展示语法示例时,使用行内代码:`---`。要在独立的一行显示普通文本,请转义第一个连字符:\---

其他常用格式可以随时查阅 Markdown 速查表

在浏览器中试试

打开首页编辑器,即可无需安装地查看、编辑和导出 Markdown。

更多文章

Markdown 水平线:分隔线、规则与常见问题修复 | MD 文件查看器