HTML表格
了解HTML表格的基本工作原理。
在Web早期,表格是构建布局的重要组成部分。
后来,表格被CSS及其布局功能取代,如今我们有强大的工具,如CSS Flexbox和CSS Grid来构建布局。现在,表格只用于构建表格!
table
标签
使用table
标签定义表格:
在表格内定义数据。我们按行来思考,这意味着我们将行添加到表格中(而不是列)。我们在行内定义列。
行
使用tr
标签添加行,这是我们可以将其添加到table
元素中的唯一元素:
1 2 3 4 5
| <table> <tr></tr> <tr></tr> <tr></tr> </table>
|
这是一个有3行的表格。
第一行可以作为表头。
列标题
表头包含列的名称,通常以粗体字显示。
想想Excel / Google Sheets文档。顶部的A-B-C-D…表头。
我们使用th
标签定义表头:
1 2 3 4 5 6 7 8 9
| <table> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr></tr> <tr></tr> </table>
|
表格内容
使用td
标签在其他tr
元素内部定义表格的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <table> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <td>Row 1 Column 1</td> <td>Row 1 Column 2</td> <td>Row 1 Column 3</td> </tr> <tr> <td>Row 2 Column 1</td> <td>Row 2 Column 2</td> <td>Row 2 Column 3</td> </tr> </table>
|
这是浏览器渲染的效果,如果您没有添加任何CSS样式:
添加以下CSS:
1 2 3 4
| th, td { padding: 10px; border: 1px solid #333; }
|
使表格看起来更像是一个正式的表格:
跨列和跨行
行可以跨越2个或多个列,使用colspan
属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <table> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <td colspan="2">Row 1 Columns 1-2</td> <td>Row 1 Column 3</td> </tr> <tr> <td colspan="3">Row 2 Columns 1-3</td> </tr> </table>
|
或者它可以跨越2个或多个行,使用rowspan
属性:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <table> <tr> <th>Column 1</th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <td colspan="2" rowspan="2">Rows 1-2 Columns 1-2</td> <td>Row 1 Column 3</td> </tr> <tr> <td>Row 2 Column 3</td> </tr> </table>
|
行标题
之前我解释了如何使用th
标签在表的第一个tr
标签中添加列标题。
您可以将th
标签作为非表的第一个tr
中的第一个元素添加,以添加行标题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <table> <tr> <th></th> <th>Column 2</th> <th>Column 3</th> </tr> <tr> <th>Row 1</th> <td>Col 2</td> <td>Col 3</td> </tr> <tr> <th>Row 2</th> <td>Col 2</td> <td>Col 3</td> </tr> </table>
|
更多标签用于组织表格
您可以在表格中添加3个更多标签,使其更有组织。
在使用大型表格时,这样做效果更好。而且还需要正确地定义一个表头和一个表尾。
这些标签是
它们用于包装tr
标签,以清楚地定义表的不同部分。以下是示例用法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <table> <thead> <tr> <th></th> <th>Column 2</th> <th>Column 3</th> </tr> </thead> <tbody> <tr> <th>Row 1</th> <td>Col 2</td> <td>Col 3</td> </tr> <tr> <th>Row 2</th> <td>Col 2</td> <td>Col 3</td> </tr> </tbody> <tfoot> <tr> <td></td> <td>Footer of Col 1</td> <td>Footer of Col 2</td> </tr> </tfoot> </table>
|
表格标题
表格应该有一个描述其内容的caption
标签。该标签应该放在打开的table
标签之后:
<table>
<caption>Dogs age</caption>
<tr>
<th>Dog</th>
<th>Age</th>
</tr>
<tr>
<td>Roger</td>
<td>7</td>
</tr>
</table>