HTML表格

75 阅读3分钟

请注意: 在现代 Web 开发中,强烈推荐使用 CSS 来控制表格的样式(如边框、内边距、对齐、背景色等),而不是使用这些过时的 HTML 属性。这些属性是为了向后兼容和在无法使用 CSS 的极少数情况下保留的。使用 CSS 可以更好地分离结构(HTML)和表现(CSS),使代码更清晰、更易于维护和更具灵活性。

示例 1:基础表格(带边框)

使用 border="1" 属性来显示表格的基本边框。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>基础表格 (无 CSS)</title>
</head>
<body>

    <h2>联系人列表 (纯 HTML)</h2>

    <table border="1"> <!-- border="1" 显示一个简单的边框 -->
        <tr>
            <th>姓名</th>
            <th>邮箱</th>
            <th>电话</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>zhangsan@example.com</td>
            <td>138********</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>lisi@example.com</td>
            <td>139********</td>
        </tr>
    </table>

</body>
</html>
    

示例 2:带语义分组和标题的表格(带边框)

展示 <thead>, <tbody>, <tfoot>, 和 <caption> 的用法,同样使用 border="1"。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>语义化表格 (无 CSS)</title>
</head>
<body>

    <h2>产品价格表 (纯 HTML)</h2>

    <table border="1">
        <caption>各种水果价格</caption> <!-- 表格标题 -->
        <thead>
            <tr>
                <th>水果名称</th>
                <th>单价 (元/斤)</th>
                <th>库存状态</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <td colspan="3">注:价格可能随时变动</td> <!-- 表格脚注,跨越3列 -->
            </tr>
        </tfoot>
        <tbody>
            <tr>
                <td>苹果</td>
                <td>8.5</td>
                <td>有货</td>
            </tr>
            <tr>
                <td>香蕉</td>
                <td>4.0</td>
                <td>有货</td>
            </tr>
            <tr>
                <td>草莓</td>
                <td>25.0</td>
                <td>少量</td>
            </tr>
        </tbody>
    </table>

</body>
</html>
    

示例 3:单元格合并(带边框)

演示 colspan 和 rowspan 的使用,仍然依赖 border="1" 显示结构。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>单元格合并 (无 CSS)</title>
</head>
<body>

    <h2>课程时间表片段 (纯 HTML)</h2>

    <table border="1">
         <tr>
            <th>时间</th>
            <th>星期一</th>
            <th>星期二</th>
            <th>星期三</th>
        </tr>
        <tr>
            <td>上午 9:00-10:00</td>
            <td rowspan="2">数学(连上两节)</td> <!-- 跨越 2 行 -->
            <td>英语</td>
            <td>物理</td>
        </tr>
         <tr>
            <td>上午 10:00-11:00</td>
            <!-- 数学单元格已在上行定义,这里不需要 -->
            <td>体育</td>
            <td>化学</td>
        </tr>
         <tr>
            <td>中午 12:00-1:00</td>
            <td colspan="3">午餐休息时间</td> <!-- 跨越 3 列 -->
        </tr>
    </table>

</body>
</html>
    

示例 4:使用更多已弃用的 HTML 属性(不推荐)

这个例子使用了 cellpadding, cellspacing, width, align, bgcolor 等现已不推荐使用的属性来改变表格外观。请注意,这些属性在现代浏览器中可能表现不一致,并且严重违反了结构与表现分离的原则。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>使用过时属性的表格 (不推荐)</title>
</head>
<body>

    <h2>演示过时属性 (不推荐使用)</h2>

    <table border="1"
           cellpadding="10" <!-- 单元格内容到边框的距离 -->
           cellspacing="0"  <!-- 单元格之间的距离 (0表示合并边框效果) -->
           width="400"      <!-- 表格宽度 -->
           align="center"   <!-- 表格在页面中居中对齐 -->
           bgcolor="#f0f0f0"> <!-- 表格背景色 (可能只对单元格有效) -->

        <caption>演示表格</caption>

        <thead>
            <tr bgcolor="lightblue"> <!-- 行背景色 -->
                <th>标题 1</th>
                <th>标题 2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td align="right">数据 1 (右对齐)</td> <!-- 单元格内容对齐 -->
                <td>数据 2</td>
            </tr>
            <tr>
                <td>数据 3</td>
                <td bgcolor="lightgreen">数据 4 (单元格背景色)</td>
            </tr>
        </tbody>
    </table>

    <p><strong>重要提示:</strong> 上述表格中使用的 `cellpadding`, `cellspacing`, `width`, `align`, `bgcolor` 等属性都是**已过时 (deprecated)** 的 HTML 属性。在现代 Web 开发中,您应该使用 **CSS** 来控制表格的样式和布局,以实现更好的代码分离、可维护性和响应式设计。</p>

</body>
</html>
    

总结:

  • 你可以仅使用 HTML 创建表格的基本结构 (<table>, <tr>, <th>, <td>, <thead>, <tbody>, <tfoot>, <caption>)。
  • 可以使用 border="1" 属性(虽然也已不推荐)来快速显示表格的边框,以便在没有 CSS 的情况下查看结构。
  • colspan 和 rowspan 用于合并单元格,这是 HTML 结构的一部分,不是样式。
  • 避免使用 cellpadding, cellspacing, width, align, bgcolor 等纯粹用于表现的 HTML 属性。始终优先使用 CSS 来进行表格样式设计。