跳转至

课时12:表格基础

学习目标:掌握 HTML 表格的核心标签、单元格合并技术及不规则表格的构建方法。


一、表格基础标签体系

HTML 表格由三个核心标签构建,形成严格的层级嵌套关系:

table(表格容器)
└── tr(表格行)
    └── td(单元格)/ th(表头单元格)
标签 全称 语义 标签类型
<table> Table 表格容器 双标签、容器级
<tr> Table Row 表格行 双标签、容器级
<td> Table Data 标准单元格 双标签、容器级
<th> Table Header 表头单元格 双标签、容器级

二、基础表格构建

2.1 三行四列表格示例

<table>
    <tr>
        <td>数据1</td>
        <td>数据2</td>
        <td>数据3</td>
        <td>数据4</td>
    </tr>
    <tr>
        <td>数据5</td>
        <td>数据6</td>
        <td>数据7</td>
        <td>数据8</td>
    </tr>
    <tr>
        <td>数据9</td>
        <td>数据10</td>
        <td>数据11</td>
        <td>数据12</td>
    </tr>
</table>

2.2 默认样式问题

表格默认无可见边框,需要添加样式才能呈现网格效果:

<!-- 添加边框属性(边框套边框效果) -->
<table border="1">
    <tr><td>A</td><td>B</td></tr>
</table>

边框合并优化

<table border="1" style="border-collapse: collapse;">
    <tr><td>A</td><td>B</td></tr>
</table>
  • border-collapse: collapse 将相邻单元格边框合并为单一线条,使表格更美观
  • 属于 CSS 属性,实际工作中推荐将样式写入外部 CSS 文件

三、表头标签 <th>

3.1 语义与样式

<th> 用于定义表格的表头单元格,通常位于第一行或第一列:

<table border="1">
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>城市</th>
    </tr>
    <tr>
        <td>张三</td>
        <td>28</td>
        <td>北京</td>
    </tr>
</table>

浏览器默认效果: - <th> 中的文本自动加粗显示 - 文本默认居中对齐(部分浏览器实现) - 视觉区别于普通数据单元格 <td>

3.2 使用规范

  • 第一行通常使用 <th> 描述列的含义
  • 第一列(如行标题)也可使用 <th>
  • 一个表格中 <th><td> 可以共存

四、单元格合并技术

4.1 合并属性

属性 作用 方向 属性值
rowspan 跨行合并 纵向(上下) 数字,表示跨越的行数
colspan 跨列合并 横向(左右) 数字,表示跨越的列数

4.2 合并核心原则

被合并占位的位置在后续行中不再书写对应的 <td> 标签

4.3 合并案例分析

目标表格结构

┌─────┬─────┬─────┬─────┐
│  1  │  2  │  3  │  4  │
│     │     │     │     │
├─────┴─────┤     │     │
│  5  │  6  │     │     │  <- 第3格跨3行
├─────┼─────┤     │     │
│  7  │  8  │     │     │
└─────┴─────┴─────┴─────┘

实现代码

<table border="1" style="border-collapse: collapse;">
    <tr>
        <td>1</td>
        <td colspan="2">2</td>    <!-- 跨2列,占位第2、3格 -->
        <td>4</td>
    </tr>
    <tr>
        <td>5</td>
        <td>6</td>
        <!-- 注意:第3格被上一行 rowspan 占用,此处不写 td -->
        <td>7</td>
    </tr>
</table>

4.4 合并分析步骤

  1. 确定总行数:数出 <tr> 的数量
  2. 确定最大列数:分析每行未被合并占位的 <td> / <th> 数量总和
  3. 逐行观察:识别哪些单元格进行了跨行或跨列,并设置对应属性
  4. 扣除占位:被合并的位置在后续行中省略不写

4.5 样式辅助观察

为便于调试和观察合并效果,可为单元格添加临时样式:

<td style="width: 80px; height: 60px; text-align: center;">数据</td>