HTML 表格入门:table、tr、td 与合并单元格
网页里展示成绩单、价目表、日程安排这类行列对齐的数据,最适合用的就是表格。HTML 里的表格由三个最基础的标签搭起来:<table> 声明一张表,<tr> 是一行,<td> 是行里的一个单元格。
最简单的表格
<table border="1">
<tr>
<td>姓名</td>
<td>分数</td>
</tr>
<tr>
<td>小明</td>
<td>92</td>
</tr>
<tr>
<td>小红</td>
<td>88</td>
</tr>
</table>
规律很好记:有几行就写几个 <tr>,每行有几列就写几个 <td>。注意表格内容必须写在单元格里,直接在 <tr> 里塞文字是无效的。
表头用 th,不是加粗的 td
第一行通常是列名,应该用 <th>(table head)代替 <td>。浏览器会把表头文字加粗、居中,对读屏软件也更友好:
<table border="1">
<tr>
<th>商品</th>
<th>价格</th>
</tr>
<tr>
<td>键盘</td>
<td>199 元</td>
</tr>
<tr>
<td>鼠标</td>
<td>89 元</td>
</tr>
</table>
表格变长时,还可以把表头行包进 <thead>、数据行包进 <tbody>,浏览器滚动和打印时都能正确区分表头。
colspan:横着合并单元格
想让"合计"那一行横跨两列,用 colspan 属性:
<table border="1">
<tr><th>商品</th><th>价格</th></tr>
<tr><td>键盘</td><td>199 元</td></tr>
<tr><td>鼠标</td><td>89 元</td></tr>
<tr>
<!-- 这一格横跨 2 列 -->
<td colspan="2">合计:288 元</td>
</tr>
</table>
注意:合并之后这一行只写这一个 <td> 就够了,因为它已经把两列的位置都占掉了。
rowspan:竖着合并单元格
rowspan 负责纵向合并,比如"分类"一栏要管住下面两行:
<table border="1">
<tr><th>分类</th><th>商品</th></tr>
<tr>
<td rowspan="2">外设</td>
<td>键盘</td>
</tr>
<tr>
<!-- 分类格已被上一行占住,这里只写一格 -->
<td>鼠标</td>
</tr>
</table>
rowspan="2" 表示这个格子往下占两行,所以下一行里要少写一个 <td>。两个属性也可以同时用在同一个格子上,实现块状合并。
小结
<table>是表、<tr>是行、<td>是单元格,内容必须写在单元格里- 列名用
<th>,语义更清楚,样式也会加粗居中 colspan横向合并、rowspan纵向合并,合并后记得少写对应的单元格- 表格只适合展示数据,做页面布局请用 CSS 的 Grid 或 Flexbox
写完可以打开页面按 F12 检查元素,数一数每行的 td 数量是否对得上。

