本章主要探讨 HTML5 中表格元素的用法。表格的主要用途是以网格的形式显示二维数据。
一.表格元素总汇
表格的基本构成最少需要三个元素:table、tr、td,其他的一些作为可选辅助存在。
元素名称 | 说明 |
table | 表示表格 |
thead | 表示标题行 |
tbody | 表示表格主体 |
tfoot | 表示表脚 |
tr | 表示一行单元格 |
th | 表示标题行单元格 |
td | 表示单元格 |
col | 表示一列 |
colgrou | 表示一组列 |
caption | 表示表格标题 |
二.构建表格解析
1.table、tr、td构建基础表格
<table border="1"> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </table>
解释:<table>元素表示一个表格的声明,<tr>元素表示表格的一行,<td>元素表示一个单元格。默认情况下表格是没有边框的,所以,在<table>元素增加一个 border 属性,设置为 1 即可显示边框。
2.<th>为表格添加标题单元格
<table border="1" style="width:300px;"> <tr> <th>姓名</th> <th>性别</th> <th>婚姻</th> </tr> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </table>
解释:<th>元素主要是添加标题行的单元格,实际作用就是将内部文字居中且加粗。这里使用了一个通用属性 style,主要用于 CSS 样式设置,以后会涉及到。<th><td>均属于单元格,包含两个合并属性:colspan、rowspan 等。
3.<thead>添加表头
<thead> <tr> <th>姓名</th> <th>性别</th> <th>婚姻</th> </tr> </thead>
解释:<thead>元素就是限制和规范了表格的表头部分。尤其是以后动态生成表头,它的位置是不固定的,使用此元素可以限定在开头位置。
4.<tfoot>添加表脚
<tfoot> <tr> <td colspan="3">统计:共两名</td> </tr> </tfoot>
解释:<tfoot>元素为表格生成表脚,限制在表格的底部。
5.<tbody>添加表主体
<tbody> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </tbody>
解释:<tbody>元素主要是包含住非表头表脚的主体部分,有助于表格格式的清晰,更加有助于后续 CSS 和 JavaScript 的控制。
6.<caption>添加表格标题
<caption>这是一个人物表</caption>
解释:<caption>元素给表格添加一个标题。
7.<colgroup>设置列
<colgroup span="2" style="background:red;">
解释:<colgroup>元素是为了处理某个列,span 属性定义处理哪些列。1 表示第一列, 2 表示前两列。如果要单独设置第二列,那么需要声明两个,先处理第一个,将列点移入第二位,再处理第二个即可。
8.<col>更灵活的设置列
<colgroup> <col> <col style="background:red;" span="1"> </colgroup>
解释:<col>元素表示单独一列,一个表示一列,控制更加灵活。如果设置了 span 则,控制多列。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5表格元素</title> <style type="text/css"> *{padding: 0; margin: 0;} ul,li{ } a{ text-decoration: none; color:#000;} body{font-family: '微软雅黑'; } dl{width:100%; height: auto; padding: 20px 0; border-bottom: 1px solid #ccc;} dl dt{ padding-bottom: 5px; color: red;} dl dd{ padding-bottom: 5px; } </style> </head> <body> <dl> <dt>table、tr、td构建基础表格</dt> <dd> <table border="1"> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </table> </dd> <dd>解释:"table"元素表示一个表格的声明,"tr"元素表示表格的一行,"td"元素表示一个单元格。默认情况下表格是没有边框的,所以,在"table"元素增加一个 border 属性,设置为 1 即可显示边框。</dd> </dl> <dl> <dt>th 为表格添加标题单元格</dt> <dd> <table border="1" style="width:100%;"> <tr> <th>姓名</th> <th>性别</th> <th>婚姻</th> </tr> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </table> </dd> <dd>解释:th元素主要是添加标题行的单元格,实际作用就是将内部文字居中且加粗。这里使用了一个通用属性 style,主要用于 CSS 样式设置,以后会涉及到。th td均属于单元格,包含两个合并属性:colspan、rowspan 等。</dd> </dl> <dl> <dt>thead 添加表头</dt> <dd> <table border="1" style="width:100%;"> <thead> <tr> <th>姓名</th> <th>性别</th> <th>婚姻</th> </tr> </thead> </table> </dd> <dd>解释:thead元素就是限制和规范了表格的表头部分。尤其是以后动态生成表头,它的位置是不固定的,使用此元素可以限定在开头位置。</dd> </dl> <dl> <dt>tfoot 添加表脚</dt> <dd> <table border="1" style="width:100%;"> <tfoot> <tr> <td colspan="3">统计:共两名</td> </tr> </tfoot> </table> </dd> <dd>解释:tfoot元素为表格生成表脚,限制在表格的底部。</dd> </dl> <dl> <dt>tbody 添加表主体</dt> <dd> <table border="1" style="width:100%;"> <tbody> <tr> <td>张三</td> <td>男</td> <td>未婚</td> </tr> <tr> <td>李四</td> <td>女</td> <td>已婚</td> </tr> </tbody> </table> </dd> <dd>解释:tbody元素主要是包含住非表头表脚的主体部分,有助于表格格式的清晰,更加有助于后续 CSS 和 JavaScript 的控制。</dd> </dl> <dl> <dt>caption 添加表格标题</dt> <dd> <table border="1" style="width:100%;"> <caption>这是一个人物表</caption> <tbody> <tr><td>张三</td><td>男</td><td>未婚</td></tr> <tr><td>李四</td><td>女</td><td>已婚</td></tr> </tbody> </table> </dd> <dd>解释:<caption>元素给表格添加一个标题。</dd> </dl> <dl> <dt>colgroup 设置列</dt> <dd> <table border="1" style="width:300px;"> <colgroup style="background:green;" span="1"></colgroup> <colgroup style="background:red;" span="1"></colgroup> <tr><th>姓名</th><th>性别</th><th>婚否</th></tr> <tr><td>张三</td><td>男</td><td>未婚</td></tr> <tr><td>李四</td><td>女</td><td>已婚</td></tr> </table> </dd> <dd>解释:colgroup元素是为了处理某个列,span 属性定义处理哪些列。1 表示第一列, 2 表示前两列。如果要单独设置第二列,那么需要声明两个,先处理第一个,将列点移入第二位,再处理第二个即可。</dd> </dl> <dl> <dt>colspan rowspan 更灵活的设置行列</dt> <dd> <table border="1" style="width:300px;"> <tr><th rowspan="4">基本情况</th><th>姓名</th><th>性别</th><th>婚否</th></tr> <tr><td>张三</td><td>男</td><td>未婚</td></tr> <tr><td>李四</td><td>女</td><td>已婚</td></tr> <tr><td colspan="3">统计:共两人</td></tr> </table> </dd> </dl> </body> </html>