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