<th><table><tr><td>公司</td><td>雇员</td><td>成立于</td></tr><tr><td>ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td>XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> | 公司 | 雇员 | 成立于 |
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
| 公司 | 雇员 | 成立于 |
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
公司,雇员,成立于,ACME Inc,1000,1947,XYZ Corp,2000,1973。不是十分容易明白其中的关系。
<th>标签取代表头的<td>标签即可。<table><tr><th>公司</th><th>雇员</th><th>成立于</th></tr><tr><td>ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td>XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> | 公司 | 雇员 | 成立于 |
|---|---|---|
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
公司: ACME Inc. ,雇员: 1000,成立于: 1947., 以此类推。比之前好多了。
<caption><caption>标签可以为表格提供一个简短的说明,和图像的说明比较类似。默认情况下,大部分可视化浏览器显示表格标题在表格的上方中央。CSS里的caption-side属性用来控制表格标题显示的地方。大部分浏览器只能把表格标题显示在表格的上方或者下方,只有一些浏览器支持左边或者右边。这个就留给大家去试试了。 <caption>标签一定要紧接着开始的<table>标签写,如下:<table><caption>Table 1: Company data</caption><tr><th>Company</th><th>Employees</th><th>Founded</th></tr><tr><td>ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td>XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> | Company | Employees | Founded |
|---|---|---|
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
summary属性summary属性。这样可以提供比<caption>标签更详细的描述。<table summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><th>Company</th><th>Employees</th><th>Founded</th></tr><tr><td>ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td>XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> abbr属性abbr属性,可以给那些长的表头提供简写形式,取代表头的内容。abbr属性是可选的,大部分情况表头还是(或许是应该)比较简短的。abbr属性就可以这样用:<table summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><th abbr="Company">Company Name</th><th abbr="Employees">Number of Employees</th><th abbr="Founded">Foundation Year</th></tr><tr><td>ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td>XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> | Company Name | Number of Employees | Foundation Year |
|---|---|---|
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
title属性或者<abbr>标签提供一个更长的说明。scope,id,headers属性<table summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><td></td><th>Employees</th><th>Founded</th></tr><tr><th>ACME Inc</th><td>1000</td><td>1947</td></tr><tr><th>XYZ Corp</th><td>2000</td><td>1973</td></tr> </table> | Employees | Founded | |
|---|---|---|
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
scope属性。<table summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><td></td><th scope="col">Employees</th><th scope="col">Founded</th></tr><tr><th scope="row">ACME Inc</th><td>1000</td><td>1947</td></tr><tr><th scope="row">XYZ Corp</th><td>2000</td><td>1973</td></tr> </table> col: 列表头 row: 行表头 col的scope属性,声明他们是下面数据单元格的表头。同样的,给每行的开头<th>加上值为row的scope属性声明他们是右边数据单元格的表头。Scope属性还有两个值:colgroup: 定义列组(column group)的表头信息 rowgroup: 定义行组(row group)的表头信息 <colgroup>标签定义的。行组则是由<thead>、<tfoot>和<tbody>定义的。稍后我将会详细介绍它们。<td>标签也应该加上scope属性:<table summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><th scope="col">Company</th><th scope="col">Employees</th><th scope="col">Founded</th></tr><tr><td scope="row">ACME Inc</td><td>1000</td><td>1947</td></tr><tr><td scope="row">XYZ Corp</td><td>2000</td><td>1973</td></tr> </table> td[scope] {font-weight:bold; } | Company | Employees | Founded |
|---|---|---|
| ACME Inc | 1000 | 1947 |
| XYZ Corp | 2000 | 1973 |
ID。然后为下面的数据单元格添加headers属性,这个headers属性值包含用空格分开的各个ID,这些ID代表的表头各自关联到该数据单元格上。这样做很复杂,只是当有超过两个表头的单元格才用。在复杂的和不规则的表格中,scope属性就力不从心了。<table class="extbl" summary="The number of employees and the foundation year of some imaginary companies."><caption>Table 1: Company data</caption><tr><td rowspan="2"></td><th id="employees" colspan="2">Employees</th><th id="founded" rowspan="2">Founded</th></tr><tr><th id="men">Men</th><th id="women">Women</th></tr><tr><th id="acme">ACME Inc</th><td headers="acme employees men">700</td><td headers="acme employees women">300</td><td headers="acme founded">1947</td></tr><tr><th id="xyz">XYZ Corp</th><td headers="xyz employees men">1200</td><td headers="xyz employees women">800</td><td headers="xyz founded">1973</td></tr> </table> | Employees | Founded | ||
|---|---|---|---|
| Men | Women | ||
| ACME Inc | 700 | 300 | 1947 |
| XYZ Corp | 1200 | 800 | 1973 |
scope属性吧。rowspan属性和colspan属性常被用来让单元格跨几列或跨几行,来布局那些经过整齐切割的图像。这两个属性现在还在用, 因为并没有CSS来控制单元格的跨行和跨列。仔细想想,其实是很有道理的:跨行和跨列示表格结构(structure)的一部分,而不是其表现(presentation)。<col>和<colgroup><colgroup>和<col>标签来为相关的表格列分组。这样就可以(在一些浏览器中)使用CSS来单独的为列样式化。列组也可以使用scope属性来标明其表头信息。<thead>, <tfoot>, 和<tbody><thead>), 表尾(或表注)组(<tfoot>), 然后是一个或多个表身(<tbody>) 。每一个行组必须包含一个或多个表格行。 <thead>,那么它必须出现在<tfoot>和<tbody>之前。而<tfoot>则必须出现在<tbody>之前。如果没有使用<thead>和<tfoot>,那么<tbody>标签也可以不加(也不是非得不加,随你喜欢了)。一个有行组的表格结构看起来如下:<table><thead><tr></tr>… 更多表头的行</thead><tfoot><tr></tr>… 更多表尾的行</tfoot><tbody><tr></tr>… 第一个<tbody>的行</tbody><tbody><tr></tr>… 第二个<tbody>的行</tbody>… 更多的<tbody> </table> <caption>、什么都没有,没有格式,陈旧的布局表格除了<table>,<tr>,<td>什么都可以不要。另外还要承担风险,即如何面对那些非可视的用户代理(UA)。<th>加上scope属性就可以了,又快又简单。axis属性,并且对于<colgroup>和<col>的描述也不是很深。对于格式化和样式化还有border模型我也没有深究,还缺少一个真正复杂的表格的例子。