Markdown 表格
用 | 分隔列,在表头下面写一行短横线。本文介绍对齐方式、单元格里的格式、转义竖线、单元格内换行,以及 Markdown 表格不够用时的办法。
简短回答
Markdown 怎么画表格?
先用竖线写表头单元格,下一行写短横线,之后每行一条数据:| 姓名 | 职位 |、| --- | --- |、| 张三 | 设计 |。短横线行里的冒号决定对齐方式。表格来自 GitHub 风格 Markdown,GitHub 和大多数编辑器都支持。
Markdown
| 姓名 | 职位 | 入职年份 |
| --- | --- | --- |
| 张三 | 设计 | 2021 |
| 李四 | 工程 | 2019 |显示效果
| 姓名 | 职位 | 入职年份 |
|---|---|---|
| 张三 | 设计 | 2021 |
| 李四 | 工程 | 2019 |
表格的写法和示例
源码里的列不需要对齐,渲染器会根据竖线生成表格。
列对齐
短横线左边加冒号是左对齐,两边都加是居中,右边加是右对齐,适合数字。
Markdown
| 商品 | 数量 | 价格 |
| :--- | :---: | ---: |
| 苹果 | 3 | 12.00 |
| 梨 | 12 | 48.50 |显示效果
| 商品 | 数量 | 价格 |
|---|---|---|
| 苹果 | 3 | 12.00 |
| 梨 | 12 | 48.50 |
单元格里的格式
单元格里可以有加粗、行内代码、链接、图片和删除线,但不能放列表或代码块。
Markdown
| 参数 | 默认值 | 说明 |
| --- | --- | --- |
| `--force` | **关闭** | 跳过[检查](https://example.com/checks) |
| `--quiet` | 开启 | ~~详细~~ 静默输出 |显示效果
| 参数 | 默认值 | 说明 |
|---|---|---|
--force | 关闭 | 跳过检查 |
--quiet | 开启 |
单元格里的竖线和换行
单元格里的竖线要写成 \|,代码里也一样。用 <br> 在单元格里换行。
Markdown
| 运算符 | 含义 |
| --- | --- |
| `a \| b` | a 或 b |
| `&&` | 两边都为真,<br>从左到右计算 |显示效果
| 运算符 | 含义 |
|---|---|
a | b | a 或 b |
&& | 两边都为真, 从左到右计算 |
最简写法
两边的竖线和对齐用的空格都可以省略,把列对齐只是为了源码好读。
Markdown
姓名 | 职位
--- | ---
张三 | 设计
李四 | 工程显示效果
| 姓名 | 职位 |
|---|---|
| 张三 | 设计 |
| 李四 | 工程 |
空表头
表格总要有表头行,不需要表头时把表头单元格留空。
Markdown
| | |
| --- | --- |
| 周一 | 健身 |
| 周二 | 钢琴 |显示效果
| 周一 | 健身 |
| 周二 | 钢琴 |
用 HTML 合并单元格
Markdown 表格不能合并单元格。允许 HTML 的地方可以写带 colspan 或 rowspan 的 HTML 表格。
Markdown
<table>
<tr><th colspan="2">营业时间</th></tr>
<tr><td>周一至周五</td><td>9:00–18:00</td></tr>
<tr><td>周六</td><td>10:00–14:00</td></tr>
</table>显示效果
| 营业时间 | |
|---|---|
| 周一至周五 | 9:00–18:00 |
| 周六 | 10:00–14:00 |
各平台的表格支持
遵循 GitHub 风格 Markdown 的应用都能显示表格,聊天软件不能。
| 应用 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 支持 | 支持表格和对齐,过宽的表格可以横向滚动。 |
| Obsidian | 支持 | 阅读视图和实时预览里都能显示表格。 |
| VS Code / Typora | 支持 | 预览中显示表格,Typora 可以像表格软件一样编辑。 |
| Discord / Slack | 不支持 | 表格显示为普通文字,放进代码块可以保持列对齐。 |
常见问题
表格的列怎么对齐?
在表头下面的短横线行里加冒号:
:--- 左对齐,:---: 居中,---: 右对齐。Markdown 表格能合并单元格吗?
不能。允许 HTML 的地方可以写带
colspan 或 rowspan 的 HTML 表格。单元格里怎么换行?
在要换行的位置写
<br>。直接换行会结束这一行表格。单元格里怎么写竖线?
用反斜杠转义:
\|。行内代码里也要这样写。为什么表格没有显示出来?
检查表头下面是否有短横线行、短横线行的单元格数是否和表头一致、每一行是否都写在同一行里,以及表格前面是否缩进了四个空格(那样会变成代码)。在列表里时,表格要缩进到和列表项文字对齐。
单元格里能放列表或代码块吗?
Markdown 做不到,单元格里只能有一行文字。可以用
<br> 分隔各项,或者在允许 HTML 的地方改用 HTML 表格。怎样快速做一个表格?
用 Markdown 表格生成器 像编辑表格一样填写单元格,或者用 CSV 转 Markdown 表格 转换电子表格。
Discord 和 Slack 支持表格吗?
不支持。把表格放进代码块可以保持列对齐。