Markdown 列表
列表是文档里出现频率最高的结构之一——待办事项、操作步骤、特性清单都靠它。Markdown 的列表语法看似简单,但嵌套规则和松紧区别容易让新手翻车。这一章把所有列表语法一次讲清。
1. 无序列表(Unordered)
三种符号都可以,渲染为 HTML 的 <ul>:
- 用减号
* 用星号
+ 用加号
三种符号等价,渲染为 <ul><li>。
同一文档建议统一只用一种。
虽然三种符号都能用,但强烈建议一个文档里只用一种——推荐减号 -,因为星号和加号在英文环境里更易和加粗、其他语义混淆。
2. 有序列表(Ordered)
数字 + 点 + 空格,渲染为 <ol>:
1. 第一项
2. 第二项
3. 第三项
数字无需连续,也能渲染为有序:
1. 第一项
1. 第二项
1. 第三项
(渲染时自动变成 1. 2. 3.)
甚至可以乱序:
5. 第五
3. 第三
8. 第八
(渲染时仍是 1. 2. 3. 顺序)
有趣的是:渲染时显示的编号是按顺序自动生成的,与源码里写的数字无关。所以推荐统一写 1.——这样插入、删除、重排项目时无需手动改编号。
3. 嵌套列表
缩进 2 或 4 个空格就能嵌套(看具体引擎,CommonMark 推荐 4 空格,GFM 推荐 2 空格):
- 一级
- 二级(缩进 2 或 4 个空格)
- 三级
- 回到一级
有序嵌套:
1. 有序一级
1. 有序二级
2. 有序二级
2. 有序一级
混搭:
1. 有序一级
- 无序二级
- 无序二级
4. 任务列表(Task List)
GFM 扩展,用方括号 + 字母 x 表示复选框:
- [x] 已完成的任务
- [ ] 未完成的任务
- [ ] 另一个未完成
GFM 扩展,渲染为复选框。
[x] 中 x 大小写都可以。
任务列表在 GitHub Issue、PR、项目管理里极为常用,渲染出来复选框可以直接点击切换(在 GitHub 上)。
5. 松散列表 vs 紧密列表
这是新手最容易忽略的细节:列表项之间有没有空行,决定了渲染结果:
松散列表(项之间有空行):
- 第一项
- 第二项
渲染时每项被 <p> 包裹,间距更大。
紧密列表(无空行):
- 第一项
- 第二项
渲染为紧凑排列。
- 紧密列表:项之间无空行,渲染为
<li>项</li>,行距紧凑。 - 松散列表:项之间有空行,每项被
<p>包裹,行距更大、更适合长内容。
6. 列表项里放多段内容
列表项不是只能写一行——可以放多段、引用、代码块、图片。关键:后续内容必须缩进对齐到列表标记符之后:
- 第一项的第一段。
第一项的第二段(缩进对齐到列表标记后)。
> 第一项里的引用。
- 第二项。
7. 最佳实践
✅ 推荐:统一用减号 -
- 苹果
- 香蕉
✅ 推荐:嵌套缩进 2 空格
- 水果
- 苹果
✅ 推荐:有序列表统一用 1.
1. 第一
1. 第二
(这样调整顺序时无需重排编号)
❌ 避免:混用符号
- 苹果
* 香蕉
+ 橘子
8. 常见坑
- 数字后面没空格:
1.第一项不会渲染成列表,必须1. 第一项。 - 嵌套缩进混乱:2 空格和 4 空格混用,渲染层级会乱。
- 列表后紧贴段落:列表和后续段落之间需要空行,否则后续段落可能被并入列表。
- 列表里写代码块:代码块需要缩进 8 空格(列表标记宽度 + 代码块缩进),新手常只缩进 4。
- 把有序列表的编号写死:
1. 2. 3.写死,调整顺序时要手动改全部数字。统一写1.即可。
小结
列表是 Markdown 里最实用的结构之一,掌握它能写出清晰的步骤、待办、特性清单。下一篇看链接与图片——把文档和外部资源连起来。
← 上一篇 文本格式
下一篇 链接与图片 →