Skip to content

表格

HTML 表格用于展示二维数据,由行和列组成。

基本结构

表格使用 <table> 标签创建:

html
<table>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>城市</th>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td>北京</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>30</td>
        <td>上海</td>
    </tr>
</table>

表格标签

标签说明
<table>定义表格
<tr>定义表格行
<th>定义表头单元格(加粗居中)
<td>定义表格单元格

表格结构

为了更好的语义化,可以将表格分为三个部分:

html
<table>
    <thead>
        <tr>
            <th>姓名</th>
            <th>年龄</th>
            <th>城市</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>张三</td>
            <td>25</td>
            <td>北京</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>30</td>
            <td>上海</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td>合计</td>
            <td>2人</td>
            <td>-</td>
        </tr>
    </tfoot>
</table>

结构标签

标签说明
<thead>表头区域
<tbody>表体区域
<tfoot>表尾区域

合并单元格

跨列合并(colspan)

html
<table border="1">
    <tr>
        <th colspan="3">学生信息</th>
    </tr>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>城市</th>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td>北京</td>
    </tr>
</table>

跨行合并(rowspan)

html
<table border="1">
    <tr>
        <th>类别</th>
        <th>项目</th>
        <th>价格</th>
    </tr>
    <tr>
        <td rowspan="2">水果</td>
        <td>苹果</td>
        <td>5元</td>
    </tr>
    <tr>
        <td>香蕉</td>
        <td>3元</td>
    </tr>
    <tr>
        <td rowspan="2">蔬菜</td>
        <td>白菜</td>
        <td>2元</td>
    </tr>
    <tr>
        <td>萝卜</td>
        <td>1元</td>
    </tr>
</table>

表格属性

边框

html
<table border="1">
    <!-- 带边框的表格 -->
</table>

单元格间距

html
<table cellspacing="10">
    <!-- 单元格之间的间距 -->
</table>

单元格内边距

html
<table cellpadding="10">
    <!-- 单元格内容与边框的距离 -->
</table>

提示

以上属性已废弃,推荐使用 CSS 设置表格样式:

css
table { border-collapse: collapse; }
td, th { padding: 10px; border: 1px solid #ccc; }

表格标题

使用 <caption> 标签添加表格标题:

html
<table>
    <caption>2024年销售统计表</caption>
    <thead>
        <tr>
            <th>月份</th>
            <th>销售额</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1月</td>
            <td>10000</td>
        </tr>
        <tr>
            <td>2月</td>
            <td>15000</td>
        </tr>
    </tbody>
</table>

完整示例

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>表格示例</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
            margin: 20px 0;
        }
        th, td {
            border: 1px solid #ddd;
            padding: 12px;
            text-align: left;
        }
        th {
            background-color: #4CAF50;
            color: white;
        }
        tr:nth-child(even) {
            background-color: #f2f2f2;
        }
        tr:hover {
            background-color: #ddd;
        }
        caption {
            font-size: 1.5em;
            margin-bottom: 10px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>课程安排表</h1>
    
    <table>
        <caption>2024年春季学期课程安排</caption>
        <thead>
            <tr>
                <th rowspan="2">时间</th>
                <th colspan="3">课程</th>
            </tr>
            <tr>
                <th>周一</th>
                <th>周三</th>
                <th>周五</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>8:00-10:00</td>
                <td>HTML</td>
                <td>CSS</td>
                <td>JavaScript</td>
            </tr>
            <tr>
                <td>10:00-12:00</td>
                <td>Vue.js</td>
                <td>React</td>
                <td>Node.js</td>
            </tr>
            <tr>
                <td>14:00-16:00</td>
                <td>数据库</td>
                <td>算法</td>
                <td>项目实战</td>
            </tr>
        </tbody>
        <tfoot>
            <tr>
                <td colspan="4">总计:每周 9 节课</td>
            </tr>
        </tfoot>
    </table>
    
    <h2>学生成绩表</h2>
    
    <table>
        <thead>
            <tr>
                <th>学号</th>
                <th>姓名</th>
                <th>HTML</th>
                <th>CSS</th>
                <th>JavaScript</th>
                <th>总分</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>001</td>
                <td>张三</td>
                <td>90</td>
                <td>85</td>
                <td>88</td>
                <td>263</td>
            </tr>
            <tr>
                <td>002</td>
                <td>李四</td>
                <td>78</td>
                <td>92</td>
                <td>85</td>
                <td>255</td>
            </tr>
            <tr>
                <td>003</td>
                <td>王五</td>
                <td>95</td>
                <td>88</td>
                <td>92</td>
                <td>275</td>
            </tr>
        </tbody>
    </table>
</body>
</html>