Wil*_*tin 22 html validation xhtml w3c-validation
我经常使用THEAD,TBODY和TFOOT元素将我的数据表划分为可以用CSS单独处理的部分.我也明白,总有一个隐含的TBODY标签.
令我困惑的是这些必须进行验证的顺序.该表将验证:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table Validation Test</title>
</head>
<body>
<table>
<thead>
<tr>
<th scope="col">Enemies List</th>
</tr>
</thead>
<tfoot>
<tr>
<td>© Bomb Voyage</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Mr. Incredible</td>
<td>Elastigirl</td>
<td>Gazer Beam</td>
</tr>
</tbody>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是这个不会:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Table Validation Test</title>
</head>
<body>
<table>
<thead>
<tr>
<th scope="col">Enemies List</th>
</tr>
</thead>
<tbody>
<tr>
<td>Mr. Incredible</td>
<td>Elastigirl</td>
<td>Gazer Beam</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>© Bomb Voyage</td>
</tr>
</tfoot>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
有效的是HEAD,FOOT,BODY; 这没有任何意义.
将脚放在桌子的底部将保持桌子和人体之间的类比.但由于某种原因,此订单被视为无效.
谁知道为什么?
Liz*_*aly 45
规范提供了一个原因:
TFOOT必须出现在TABLE定义中的TBODY之前,以便用户代理可以在接收所有(可能很多)数据行之前渲染脚.
http://www.w3.org/TR/html401/struct/tables.html#h-11.2.3
我不知道是否有任何浏览器实际上遵循此行为,并且在HTML5中更改它以处理HTML 4顺序和更逻辑的顺序:
按此顺序:可选择一个标题元素,后跟零个或多个colgroup元素,后跟可选的元素元素,后跟可选的tfoot元素,后跟零个或多个tbody元素或一个或多个tr元素,后跟可选的tfoot元素(但总共只有一个tfoot元素子元素).
http://www.w3.org/TR/html5/tabular-data.html
| 归档时间: |
|
| 查看次数: |
7594 次 |
| 最近记录: |