要在 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。