首页 > 编程笔记 > HTML笔记 阅读:34

HTML table表格用法详解(附带实例)

表格是信息的基本呈现方式之一。本节将介绍页面中关于表格的相关元素,以及表格样式的设置。

HTML 页面中,表格相关的元素包括:
在下面的代码中,首先从一个简单的表格开始。
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>SUV配置单</title>
</head>
<body>
    <table>
        <caption>SUV配置单</caption>
        <tbody>
            <tr>
                <th>项目</th>
                <th>基本型</th>
                <th>精英型</th>
                <th>尊贵型</th>
            </tr>
            <tr>
                <td>GPS</td>
                <td>*</td>
                <td>有</td>
                <td>有</td>
            </tr>
            <tr>
                <td>雷达</td>
                <td>有</td>
                <td>有</td>
                <td>有</td>
            </tr>
            <tr>
                <td>倒车影像</td>
                <td>*</td>
                <td>*</td>
                <td>有</td>
            </tr>
        </tbody>
    </table>
</body>
</html>
页面显示效果见下图:


虽然说定义样式主要是 CSS 的工作,但在表格中还是有一些基本的样式属性可以使用。

例如,需要为表格加上线条时可以使用 <table> 标记的 border 属性指定宽度,单位是像素;如 <table border="1"> 指定线条宽度为 1 像素。页面显示效果见下图。


默认情况下,单元格之间会有一些间距,虽然看起来有一些立体感,但很多时候并不需要这样的效果。下面的代码在 <table> 标记中再添加两个属性。
<table border="1" cellspacing="0" cellpadding="3">
上述代码中,cellspacing 属性设置单元格之间的距离,cellpadding 属性设置单元格内容与边框的距离(内缩进)。页面显示效果见下图。


下面的代码通过设置 colgroup 和 col 元素的样式为表格的列添加背景色:
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<table border="1" cellspacing="0" cellpadding="3">
    <caption>SUV 配置单</caption>
    <colgroup>
        <col style=" background-color:#bbb;" />
    </colgroup>
    <colgroup style=" background-color:#ddd;">
        <col />
        <col />
        <col />
    </colgroup>
    <tbody>
        <tr>
            <th>项目</th>
            <th>基本型</th>
            <th>精英型</th>
            <th>尊贵型</th>
        </tr>
        <tr>
            <td>GPS</td>
            <td>*</td>
            <td>有</td>
            <td>有</td>
        </tr>
        <tr>
            <td>雷达</td>
            <td>有</td>
            <td>有</td>
            <td>有</td>
        </tr>
        <tr>
            <td>后视影像</td>
            <td>*</td>
            <td>*</td>
            <td>有</td>
        </tr>
    </tbody>
</table>
</body>
</html>
页面显示效果见下图:


代码中,colgroup 元素中可以定义一个或多个 col 元素,这些 col 元素会按顺序与表格中的列相匹配。通过 col 元素,可以定义列的属性,通过 colgroup 元素,则可以同时定义多个列的属性。 在下面的代码中,第一个 <tr> 标签中添加了 style 属性,指定了行的背景色。
<tr style="background-color:#bbb;">
    <th>项目</th>
    <th>基本型</th>
    <th>精英型</th>
    <th>尊贵型</th>
</tr>
页面显示效果见下图:


使用 Excel 时,有合并单元格的概念,即将多个单元格(多列或多行)进行合并。在 HTML 中的表格,同样可以实现这个功能,此时需要关注 td 元素的以下两个属性:
下面的代码在第二行定义了一个占用两列的合并单元格:
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <table border="1" cellpadding="10" cellspacing="0">
        <tr>
            <td>行1列1</td>
            <td>行1列2</td>
            <td>行1列3</td>
        </tr>
        <tr>
            <td>行2列1</td>
            <td colspan="2">行2列2(占用两列)</td>
        </tr>
        <tr>
            <td>行3列1</td>
            <td>行3列2</td>
            <td>行3列3</td>
        </tr>
    </table>
</body>
</html>
页面显示效果见下图:

HTML表格样式

页面中,表格相关的元素都会有特殊的显示类型,样式中的 display 属性也都有对应的值,如:
大多数情况下,并不需要对表格中的元素设置 display 属性,但在使用 JavaScript 操作表格时,使用正确的 display 属性值非常重要。

对于表元素,也就是 display 属性值为 table 或 inline-table 的元素,还有一些样式属性可以使用,下面分别讨论。

border-collapse 属性,用于设置单元格之间的折叠样式,其常用值包括:
下图分别显示了这两个值的效果:


border-spacing 属性,设置单元格边框之间的距离,此时,border-collapse 属性值应该为 separate。

empty-cells 属性,用于处理空单元格是否显示,默认值为 show,还可以设置为 hide。使用此属性时,border-collapse 属性值同样应该为 separate。

此外,在单元格中经常还会使用 text-align 和 vertical-align 属性设置内容的水平对齐方式和垂直对齐方式。

下面的代码综合演示了表格的一些样式设计:
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <style>
        table {
            border-collapse: collapse;
        }
        th, td {
            padding: 0.3em 1em;
            border: 1px solid gray;
            text-align: center;
        }
        th {
            background-color: #ccc;
        }
    </style>
</head>
<body>
    <table>
        <tr>
            <th>列一</th>
            <th>列二</th>
            <th>列三</th>
        </tr>
        <tr>
            <td>11</td>
            <td>12</td>
            <td>13</td>
        </tr>
        <tr>
            <td>21</td>
            <td>22</td>
            <td>23</td>
        </tr>
    </table>
</body>
</html>
页面显示效果见下图:

相关文章