6.1 表格简介
在早些年的Web 1.0时代,表格常用于网页布局。但是在Web 2.0中,这种方式已经被抛弃了,网页布局都是使用CSS来实现的。但是这并没有说明表格就一无是处了,表格在实际开发中用得非常多,因为使用表格可以更清晰地排列数据。
6.2 基本结构
在HTML中,一个表格一般会由以下3个部分组成。
(1)表格:table标签
(2)行:tr标签
(3)单元格:td标签
<table>
<tr>
<td>单元格1</td>
<td>单元格2</td>
</tr>
<tr>
<td>单元格3</td>
<td>单元格4</td>
</tr>
</table>
说明:
tr,指的是table row(表格行);td,指的是table data cell(表格单元格)。
<table>
和</table>
表示整个表格的开始和结束,<tr>
和</tr>
表示行的开始和结束,而<td>
和</td>
表示单元格的开始和结束。
在表格中,有多少组“<tr></tr>
”,就表示有多少行。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表格基本结构</title>
<!--这里使用CSS为表格加上边框-->
<style type="text/css">
table,tr,td{border:1px solid silver;}
</style>
</head>
<body>
<table>
<tr>
<td>HTML</td>
<td>CSS</td>
</tr>
<tr>
<td>JavaScript</td>
<td>jQuery</td>
</tr>
</table>
</body>
</html>
分析:
默认情况下,表格是没有边框的。对于表格的边框、颜色、大小等,我们在CSS中会学到。
6.3 完整结构
一个表格的“完整结构”不仅仅只有table、tr、td,还包括caption、th等。
一、表格标题:caption
在HTML中,表格一般都会有一个标题,我们可以使用caption标签来实现。
<table>
<caption>表格标题</caption>
<tr>
<td>单元格1</td>
<td>单元格2</td>
</tr>
<tr>
<td>单元格3</td>
<td>单元格4</td>
</tr>
</table>
说明:
一个表格只能有一个标题,也就是只能有一个caption标签。在默认情况下,标题都是位于整个表格内的第一行。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表格标题</title>
<!--这里使用CSS为表格加上边框-->
<style type="text/css">
table,tr,td{border:1px solid silver;}
</style>
</head>
<body>
<table>
<caption>考试成绩表</caption>
<tr>
<td>小明</td>
<td>80</td>
<td>80</td>
<td>80</td>
</tr>
<tr>
<td>小红</td>
<td>90</td>
<td>90</td>
<td>90</td>
</tr>
<tr>
<td>小杰</td>
<td>100</td>
<td>100</td>
<td>100</td>
</tr>
</table>
</body>
</html>
二、表头单元格:th
在HTML中,单元格其实有两种:表头单元格,使用th标签;表行单元格,使用td标签。
th,指的是table header cell(表头单元格)。td,指的是table data cell(表行单元格)。
<table>
<caption>表格标题</caption>
<tr>
<th>表头单元格1</th>
<th>表头单元格2</th>
</tr>
<tr>
<td>表行单元格1</td>
<td>表行单元格2</td>
</tr>
<tr>
<td>表行单元格3</td>
<td>表行单元格4</td>
</tr>
</table>
说明:
th和td在本质上都是单元格,但是并不代表两者可以互换。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表头单元格</title>
<!--这里使用CSS为表格加上边框-->
<style type="text/css">
table,tr,td,th{border:1px solid silver;}
</style>
</head>
<body>
<table>
<caption>考试成绩表</caption>
<tr>
<th>姓名</th>
<th>语文</th>
<th>英语</th>
<th>数学</th>
</tr>
<tr>
<td>小明</td>
<td>80</td>
<td>80</td>
<td>80</td>
</tr>
<tr>
<td>小红</td>
<td>90</td>
<td>90</td>
<td>90</td>
</tr>
<tr>
<td>小杰</td>
<td>100</td>
<td>100</td>
<td>100</td>
</tr>
</table>
</body>
</html>
6.4 表格语义化
一个完整的表格包含:table、caption、tr、th、td。为了更深一地对表格进行语义化,HTML引入了thead、tbody和tfoot标签。
thead、tbody和tfoot把表格划分为3部分:表头、表身、表脚。有了这些标签,表格语义更加良好,结构更加清晰,也更具有可读性和可维护性。
<table>
<caption>表格标题</caption>
<!--表头-->
<thead>
<tr>
<th>表头单元格1</th>
<th>表头单元格2</th>
</tr>
</thead>
<!--表身-->
<tbody>
<tr>
<td>表行单元格1</td>
<td>表行单元格2</td>
</tr>
<tr>
<td>表行单元格3</td>
<td>表行单元格4</td>
</tr>
</tbody>
<!--表脚-->
<tfoot>
<tr>
<td>标准单元格5</td>
<td>标准单元格6</td>
</tr>
</tfoot>
</table>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>表格语义化</title>
<!--这里使用CSS为表格加上边框-->
<style type="text/css">
table,tr,td,th{border:1px solid silver;}
</style>
</head>
<body>
<table>
<caption>考试成绩表</caption>
<thead>
<tr>
<th>姓名</th>
<th>语文</th>
<th>英语</th>
<th>数学</th>
</tr>
</thead>
<tbody>
<tr>
<td>小明</td>
<td>80</td>
<td>80</td>
<td>80</td>
</tr>
<tr>
<td>小红</td>
<td>90</td>
<td>90</td>
<td>90</td>
</tr>
<tr>
<td>小杰</td>
<td>100</td>
<td>100</td>
<td>100</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>平均</td>
<td>90</td>
<td>90</td>
<td>90</td>
</tr>
</tfoot>
</table>
</body>
</html>
分析:
表脚(tfoot)往往用于统计数据的。对于thead、tbody和tfoot标签,不一定全部都上,例如tfoot就很少用。一般情况下,我们都是根据实际需要来使用这些标签。
thead、tbody和tfoot标签也是表格中非常重要的标签,它从语义上区分了表头、表身和表脚(使代码更具有逻辑性)。
此外,thead、tbody和tfoot除了使得代码更具有语义之外,还有另外一个重要作用:方便分块来控制表格的CSS样式。
6.5 合并行:rowspan
在HTML中,我们可以使用rowspan属性来合并行。所谓的合并行,指的是将“纵向的N个单元格”合并。
<td rowspan = "跨越的行数"></td>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>rowspan属性</title>
<style type="text/css">
table,tr,td{border:1px solid silver;}
</style>
</head>
<body>
<table>
<tr>
<td>姓名:</td>
<td>小明</td>
</tr>
<tr>
<td rowspan="2">喜欢水果:</td>
<td>苹果</td>
</tr>
<tr>
<td>香蕉</td>
</tr>
</table>
</body>
</html>
6.6 合并列:colspan
在HTML中,我们可以使用colspan属性来合并列。所谓的合并列,指的是将“横向的N个单元格”合并。
<td colspan="跨越的列数"></td>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>colspan属性</title>
<style type="text/css">
table,tr,td{border:1px solid silver;}
</style>
</head>
<body>
<table>
<tr>
<td colspan="2">前端开发技术</td>
</tr>
<tr>
<td>HTML</td>
<td>CSS</td>
</tr>
<tr>
<td>JavaScript</td>
<td>jQuery</td>
</tr>
</table>
</body>
</html>
以上学习参考绿叶学习网