HTML 表格元素
在 CSS 之前,table 元素常用来布局,这种做法在 HTML4 之后不再推荐使用,table 的初衷是用于显示表格数据。
简单来说,表格由 table 标签来定义,每个表格均有若干行(由 tr 定义),每行被分割为若干单元格(由 td 定义)。td(table data),即数据单元格,其内容可以是文本、图片、列表、段落、表单、水平线表格等。
[ 表格的基本结构 ] 表格是由指定数目的行和列组成的。 // 同行的总高度一致,同列的总宽度一致。
- 单元格:表格的最小单位,一个或多个单元格纵横排列组成了表格
- 行:一个或多个单元格横向堆叠形成了行
- 列:由于表格单元格宽度必须一致,所以单元格纵向排列形成了列
[ HTML 中的表格 ] 在 HTML 中,表格提供了定义表格式数据的方法;表格由行中的单元格组成;表格中没有列元素,列的个数取决于行的单元格个数;表格不要纠结于外观,都是可以通过 CSS 来实现的。
// table、tr、td,三者是创建表格的基本标签,缺一不可。
<table>
<caption>表格的标题</caption>
<tr>
<td>单元格中的文字</td>
...
</tr>
...
</table>
[1] table 用于定义一个表格,通过二维数据表表示的信息
// 默认样式:IE7-浏览器不支持border-spacing
table{border-collapse: separate;border-spacing: 2px;border: 1px solid gray;}
// 表格的属性
border:设置表格的边框,默认为“border=0”,无边框(在html5中,border只能为"1"或" ")
width:设置表格的宽度,常用属性值:像素值
height:设置表格的高度,常用属性值:像素值
align:设置表格在网页中的水平对齐方式,常用属性值:left/center/right (详见:表格的对齐方式)
// 另,html5已废弃属性:
cellpadding(px/%):设置单元格内容与单元格边框之间的空白间距,常用属性值:像素值(默认为1像素)
cellspacing(px/%):设置单元格与单元格边框之间的空白间距,常用属性值:像素值(默认为2像素)
在 html5 中,使用 <table style="border-collapse:collapse;"></table> 可以去掉 td 之间的间隔;
对于单元格内容与边框之间的填充,可以通过 <td style="padding:0;"></td> 消除,一般通过CSSRset设置。
[2] caption 表格的标题,通常这个标题会被居中于表格之上(虽然写在 table 标签的里面)
// 默认样式
caption{text-align: center;}
// 样式属性:<caption style="caption-side:bottom">北京天气</caption>
caption-side: top(默认)
caption-side: bottom
// caption标签必须紧随table标签之后,且只能对每个表格定义一个标题。
[3] colgroup 表格中的一组列表
// 属性:span(默认为1)
<table border=1>
<colgroup span=2 width=70></colgroup>
<tbody>
<tr>
<td>1</td><td>2</td><td>3</td>
</tr>
<tr>
<td>4</td><td>5</td><td>6</td>
</tr>
</tbody>
</table>
[ col ] 定义列上所有公共单元格上的公共语义 // 属性:span
<table border=1> <colgroup> <col width=50 /> <col span=2 width=70/> </colgroup> <tbody> <tr><td>1</td><td>2</td><td>3</td></tr> <tr><td>4</td><td>5</td><td>6</td></tr> </tbody> </table>
[4] 表格结构(了解):tbody、thead、tfoot
在使用表格进行布局时,可以将表格划分为头部、主体和页脚(页脚因为有兼容性问题,不推荐):
tbody 用于定义表格的主体,一系列行数据;子元素只能是tr;可出现多个。
// 位于table标签中,一般包含网页中除头部和底部之外的其他内容。
thead 用于定义表格的头部,定义表格列头的行
// 必须位于table标签中,一般包含网页的logo和导航等头部信息。
tfoot 表格页脚,定义表格列简介的行
// 它们的出现次序是:thead、tfoot、tbody,这样浏览器就可以在收到所有数据前呈现页脚
[5] tr 表格中的行 // HTML中,tr 中只能嵌套 td,而 td 标签,它就行一个容器,可以容纳所有的元素
[6] td 表格中的单元格
常用属性:colspan、rowspan、scope
// 默认样式
th{padding: 1px;text-align: center;font-weight: bold;}
td{padding: 1px;}
[7] th 表头标签(单元格的标题),一般位于表格的第一行或第一列,其文本加粗居中
1. 常用属性:colspan、rowspan、scope 2. scope属性 - 值:row、col、rowgroup、colgroup、auto 表示单元格是某一行、某一列、(合并单元格后)rowgroup...标题,只有语义上的,没有视觉上的效果
[ 合并单元格 & 对齐方式 ]
表格跨列:colspan="3" 表格中跨行:rowspan="2" colspan:规定单元格可横跨的列数。 rowspan:规定单元格可横跨的行数。 // col为column(列)的缩写,span为跨度;row为行,rowspan即跨行。 跨行/列步骤:在需合并的第一个单元格(左上角),设置跨行或跨列属性;删除被合并的其他单元格; // 为什么呢?因为:跨行/列操作,在本质上其实是将需合并的第一个单元格扩大相应的操作,这会导致其他的单元格被挤压 ...// 对齐方式,建议使用CSS设置 表格对齐(align):居左(left)/ 居中(center)/ 居右(right) 单元格对齐 水平(align):left 、center、right 垂直(valign):top(顶端)、middle(居中)、bottom(底端)、baseline(基线)