表格相关元素

HTML 5保留了定义表格的如下标签。
➢ <table>:用于定义表格,<table.../>元素只能包含0个或1个<caption.../>子元素(定义表格标题),0个或1个<thead.../>子元素(定义表格头),0个或1个<tfoot.../>子元素(定义表格脚),多个<tr.../>子元素(定义表格行),多个<tbody.../>子元素(定义表格体)。该元素还可以指定如下几个属性。
□ cellpadding:指定单元格内容和单元格边框之间的间距。该属性值既可是像素值,也可是百分比。
□ cellspacing:指定单元格之间的间距。该属性值既可是像素值,也可是百分比。
□ width:指定表格的宽度,该属性值既可是像素值,也可是百分比。
➢ <caption>:用于定义表格标题,该元素只能包含文本、图片、超链接、文本格式化元素和表单控件元素等。
➢ <tr>:定义表格行,该元素只能包含<td.../>或者<th.../>两种元素。
➢ <td>:定义单元格,该元素里可以再次插入一个表格。除此之外,该元素还可以指定如下几个属性。
□ colspan:指定该单元格跨多少列,该属性值就是一个简单数字。
□ rowspan:指定此单元格可横跨的行数。
□ height:指定该单元格的高度,该属性值既可是像素值,也可是百分比。
□ width:指定该单元格的宽度,该属性值既可是像素值,也可是百分比。
➢ <th>:定义表格页眉的单元格,和<td>标签的用法几乎完全一样,只是浏览器呈现<th.../>元素时有一定差别。 ➢ <tbody>:定义表格的主体,该元素只能包含<tr.../>子元素。使用<tbody>标签,可以将一个表格分为几个独立的部分。<tbody.../>元素可以将表格中的一行或几行合并成一组,当我们使用Ajax编程时常常需要动态修改表格中某几行,这就需要使用<tbody.../>元素了。在<tbody.../>元素中,必须使用<tr.../>子元素来定义表格行,<tbody.../>元素本身并不会生成任何输出内容。一旦我们使用<tbody.../>将多行定义为一组,一个<tbody.../>元素就是表格中一个独立的部分,即不能从一个<tbody.../>跨越到另一个<tbody.../>中。
➢ <thead>:定义表格头,用法与<tbody.../>基本相似,指定功能稍有差别。
➢ <tfoot>:定义表格脚,用法与<tbody.../>基本相似,指定功能稍有差别。
➢ <col>:该元素用于为表格中的一个或多个列指定属性值。该元素只能出现在<table.../>元素或<colgroup.../>元素内。该元素还可指定如下属性。
□ span:指定该列可横跨多少列。
➢ <colgroup>:该元素用于为表格中的一个或多个列指定属性值。该元素只能出现在<table.../>元素或<colgroup.../>元素内。

提示

  当创建某个表格时,也许希望拥有一个标题行,可以是多个数据行组成的组,以及位于底部的一个统计行。这样就可以让浏览器能对表格标题和页脚之间的表格内容进行滚动。而且,当打印长表格内容时,表格头和表格脚将被打印在包含表格数据的每个页面上。
  如果决定使用<thead.../><tfoot.../>元素,建议按如下次序来使用它们:<thead../><tfoot.../><tbody.../>,浏览器自动会将<tfoot.../>元素的内容呈现在表格最下面。不仅如此,只能在<table.../>元素内使用这些标签。
  <col.../>元素是个空元素,它自己本身并不产生表格列。如需创建表格列,必须在<tr.../>元素内定义<td.../>元素。<col.../>元素只是为表格中指定列整体指定属性值,因此一旦在<table.../>中使用<col.../>为表格列指定属性,<col.../>定义的表格列数就应与表格内实际包含的列数相等。
  <colgroup.../>的作用只是用于组织多个<col.../>元素,当使用<colgroup.../>组织多个<col.../>元素时,<colgroup.../>上指定的属性将对它所包含的所有<col.../>元素有效。

例子
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title> 简单表格 </title>
</head>  
<body>  
<table style="width:400px" border="1">  
    <caption><b>疯狂Java体系图书</b></caption>
    <tr>
        <th>书名</th>
        <th>作者</th>
    </tr>
    <tr>
        <td>疯狂Java讲义</td>
        <td>李刚</td>
    </tr>
    <tr>
        <td>轻量级Java EE企业应用实战</td>
        <td>李刚</td>
    </tr>
</table>  
</body>  
</html>  
例子
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title> 跨行、跨列的表格 </title>
</head>  
<body>  
<table style="width:240px" border="1">  
    <tr>
        <td rowspan="2">跨2行的单元格</td>
        <td>普通单元格</td>
    </tr>
    <tr>
        <td>普通单元格</td>
    </tr>
    <tr>
        <td colspan="2">跨2列的单元格</td>
    </tr>
    <tr>
        <td>普通单元格</td>
        <td>普通单元格</td>
    </tr>
</table>  
</body>  
</html>  
例子
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title> 带tbody的表格 </title>
</head>  
<body>  
<table border="1" style="width:400px">  
    <caption><b>疯狂Java体系图书</b></caption>
    <thead>
    <tr>
        <th>书名</th>
        <th>作者</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
        <td colspan="2" style="text-align:right">现总计:2本图书</td>
    </tr>
    </tfoot>
    <tbody>
    <tr>
        <td>疯狂Java讲义</td>
        <td>李刚</td>
    </tr>
    <tr>
        <td>轻量级Java EE企业应用实战</td>
        <td>李刚</td>
    </tr>
    </tbody>
</table>  
</body>  
</html>  
例子
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title> 带col的表格 </title>
</head>  
<body>  
<!-- 设置表格背景色为黑色,单元格之间的间距为1px  
    通过设置背景色为黑色可以实现边框效果
-->
<table style="background-color:black;  
    border-collapse:separate;border-spacing:1px;">
    <caption><b>疯狂Java体系图书</b></caption>
    <!-- 定义所有列的背景色都是白色 -->
    <colgroup style="background-color:white;">
        <!-- 设置第一列宽160px -->
        <col style="width:160px"/>
        <!-- 定义横跨两列,设置这两列各宽100px -->
        <col span="2" style="width:100px"/>
    </colgroup>
    <thead>
    <tr>
        <th>书名</th>
        <th>作者</th>
        <th>价格</th>
    </tr>
    </thead>
    <tfoot>
    <tr>
        <td colspan="3" style="text-align:right">现总计:2本图书</td>
    </tr>
    </tfoot>
    <tbody>
    <tr>
        <td>疯狂Java讲义</td>
        <td>李刚</td>
        <td>109</td>
    </tr>
    <tr>
        <td>轻量级Java EE企业应用实战</td>
        <td>李刚</td>
        <td>89</td>
    </tr>
    </tbody>
</table>  
</body>  
</html>  

注:本博客内容节选自李刚编著的疯狂HTML 5/CSS 3/JavaScript讲义 ,详细内容请参阅书籍。