服务端相关 / 20 Markdown 表格

Markdown 表格

1. 前言

表格通常作为一种布局形式,用于结构化的数据展示。

Markdown 表格包含三个部分:表头、分割线、数据。

  • 表头 用来对列名对象进行描述,也就是通常所说的列名;
  • 数据 用来展示每行的具体内容,数据是表格的核心;
  • 分割线 用来区分表头和数据,也是 Markdown 中表格定义的最基本语法要求。

环境说明
考虑到 Markdown 工具之间的不兼容,有的内容直接从页面复制粘贴到本地不会正常显示,大家学习时自己动手写是肯定没问题的。本节所有实例代码及演示效果均使用 Typora 工具完成。

2. 语法详解

2.1 定义表格

Markdown 表格由 「竖线 |」、「减号 -」、「冒号 :」三种符号组成。

  • 竖线 用来定义列,每两个竖线之间为一个单元格元素;
  • 减号 用来定义分割线,也就是分割表头和数据体;
  • 冒号 配合减号使用,用于定义列数据的对齐属性。

我们先假定一组表格数据:

学号	姓名
1		张三
2		李四
3		王五

这其中,第一行 “学号” 和 “姓名” 就是表格的表头,“1”、“2”、“3”,“张三”、“李四”,这些都属于数据体,我们可以用以下方式展示表格内容。

实例 1

#### 定义表格

|学号|姓名|
|----|----|
|1|张三|
|2|李四|
|3|王五|

其渲染结果如下:

图片描述

其转换后的 html 的内容如下:

<table>
<thead>
<tr>
<th>学号</th>
<th>姓名</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>张三</td>
</tr>
<tr>
<td>2</td>
<td>李四</td>
</tr>
<tr>
<td>3</td>
<td>王五</td>
</tr>
</tbody></table>

2.2 设定表格列内容的对齐方式

在分割线上使用 「冒号 :」可以定义列内容的对齐方式。

实例 2

#### 表格内容的对齐

|左对齐|居中对齐|右对齐|
|:--|:--:|--:|
|1|张三|17岁|
|2|李四|18岁|
|3|王五|19岁|

其渲染结果如下:

图片描述

其转换后的 html 的内容如下:

<table>
<thead>
<tr>
<th align="left">左对齐</th>
<th align="center">居中对齐</th>
<th align="right">右对齐</th>
</tr>
</thead>
<tbody><tr>
<td align="left">1</td>
<td align="center">张三</td>
<td align="right">17岁</td>
</tr>
<tr>
<td align="left">2</td>
<td align="center">李四</td>
<td align="right">18岁</td>
</tr>
<tr>
<td align="left">3</td>
<td align="center">王五</td>
<td align="right">19岁</td>
</tr>
</tbody></table>

3. 使用场景及实例

表格在文章中多用于展示数据或者计划,例如数据库设计文档中,对于 Table 内容的展示、或者课程表等等。

实例 3:一张小学生课程表

#### 小学生课程表

| |周一|周二|周三|周四|周五|
|--:|---|---|---|---|---|
|**1**|数学|英语|数学|语文|品德|
|**2**|美术|数学|品德|数学|语文|
|**3**|品德|品德|语文|体育|数学|
|**4**|语文|音乐|体育|品德|美术|
|||||||
|**5**|数学|英语|语文|数学|语文|
|**6**|品德|数学|美术|劳动|活动|

其渲染结果如下:

图片描述

4. 小结

  • 数据表格使用「竖线」、「减号」、「冒号」三种符号定义,包含表头、分割线、数据三部分;
  • 数据表格必须包含 “表头” 和 “分割线”,否则无法渲染成功;
  • 数据表格转换失败通常由于表头和分隔线的数量不相等所致,所以在遇到问题时,请首先检查单元格数量是否匹配;
  • Markdown 中的表格的原生支持只有固定格式,无法支持复杂格式,如果需要定义复杂的表格效果,请使用 html 的 <Table> 标签实现。