在日常生活中,我们对表格式数据已经很熟悉了。这种数据有多种形式,如财务数据、调查数据、事件日历、公交车时刻表、电视节目表等。在大多数情况下,这类信息都由列标题或行标题加上数据本身构成。本章将对 table 元素及其子元素进行讲解,重点是基本的 table 结构和样式。HTML表格可以很复杂,不过很少需要实现特别复杂的表格。

放在电子表格中的信息通常很适合用HTML 表格呈现。从基本层面看,table 元素是由行组成的,行又是由单元格组成的。每个行(tr)都包含标题单元格(th)或数据单元格(td),或者同时包含这两种单元格。如果认为为整个表格添加一个标题有助于访问者理解该表格,可以提供 caption。在浏览器中,标题通常显示在表格上方,其用途显而易见。此外,scope 属性(也是可选的,不过推荐使用)可以告诉屏幕阅读器和其他辅助设备当前的 th是列的标题单元格(使用 scope=“col”)还是行的标题单元格(使用 scope=“row”),抑或是用于其他目的的单元格。
在默认情况下,表格在浏览器中呈现的宽度是其中的信息在页面可用空间里所需要的最小宽度。很容易就会想到可以通过 CSS 改变表格的格式,后面很快就会讲到。
如何知道每行数据表示的是什么呢?如果每个行也有标题单元格,就很容易理解了。添加这些单元格只需要在每行开头添加一个 th 元素就可以了。列标题应设置scope=“col”,而每个行的 th(位于 td 之前)则应设置 scope=“row”。
...
<body>
<table>
<caption>Quarterly Financials for
➝ 1962-1964 (in Thousands)caption>
<tr>
<th scope="col">1962th>
<th scope="col">1963th>
<th scope="col">1964th>
tr>
<tr>
<td>$145td>
<td>$167td>
<td>$161td>
tr>
<tr>
<td>$140td>
<td>$159td>
<td>$164td>
tr>
<tr>
<td>$153td>
<td>$162td>
<td>$168td>
tr>
<tr>
<td>$157td>
<td>$160td>
<td>$171td>
tr>
table>
body>
html>
每个行都是由 tr 元素标记的。这是个很简单的表格,它只有一个包含标题单元格(th元素)的行和三个包含数据单元格(td元素)的行。本例中也包含了 caption 元素,不过它是可选的。
创建表格结构的步骤
(1) 输入 以结束表格。。
(2) 如 果 需 要, 输 入 ,其中的 caption content是对表格的描述。
(3) 如果需要,在要创建的表格部分的 之前)。 或
(4) 输入 结束行。 定义行的开始。
(5) 输入 结束标题单元格,或者输入 开始标题单元格(其中的 scopetype 可以是 col、row、colgroup 或 rowgroup),或者输入 定义数据单元格的开始。
(6) 输入单元格的内容。
(7) 输入 结束数据单元格。
(8) 对行内的每个单元格重复第 (5) 步至第 (7) 步。
(9) 输入
(10) 为所在表格部分内的每个行重复第(4) 步至第 (9) 步。
(11) 如果在第 (3) 步中开始了一个表格部分,就根据需要使用 结束这个部分。
(12) 为 每 个 表 格 部 分 重 复 第 (3) 步 至第 (11) 步。注意,一个表格只能有一个 thead和 tfoot,但可以有多个 tbody 元素。
(13) 输入
在默认情况下,表格被压得很扁。通过应用一些 CSS,可以为单元格添加一些空间让它们扩大一些(使用 padding),添加边框以指示单元格的边界(使用 border),还可以对文本进行格式化。这些样式都有助于更好地理解表格。
可以通过 colspan 和 rowspan 属性让 th或 td 跨越一个以上的列或行。对该属性指定的数值表示的是跨越的单元格的数量。
1. 让单元格跨越两个或两个以上列的步骤
(1) 在需要定义跨越一个以上的列的单元格的地方,如果为标题单元格,输入
。2. 让单元格跨越两个或两个以上行的步骤
(1) 在需要定义跨越一个以上的行的单元格的地方,如果为标题单元格,输入
。