空tbody元素在Firefox下的异常
昨天遇到的一个问题,虽然是自身的不合理,但是还是记录一下。
当table中有一个空的tbody元素,并且table中同时有thead的时候,会造成table边框在Firefox下失效的问题,如图所示:
HTML Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>空tbody在firefox下的问题</title>
<style type="text/css">
table, td, th {
border:1px solid green;
border-collapse:collapse;
}
td, th {
padding:10px;
}
</style>
</head>
<body>
<table>
<thead>
<tr>
<th>cecilia</th>
<th>jolin</th>
</tr>
</thead>
<tbody>
</tbody>
<tbody>
<tr>
<td>张柏芝</td>
<td>蔡依林</td>
</tr>
</tbody>
</table>
</body>
</html>
有些地方说tbody必须包含tr,有些地方说可以包含0个tr,在进行html验证的时候又会提示说标签缺少child。这个问题只有在Firefox下出现,而且必须有thead存在的时候才会出现这个问题。希望哪位高人指点一下问题产生的原因~
Demo地址:http://www.12sui.cn/test/empty-tbody.html
测试浏览器:IE6、IE7、IE8、Opera 10.10(Build 1893)、Firefox 3.5.6、Chrome 3.0.195.38、Safari 4.0.3(531.9.1)。
参考资料:
- http://www.whatwg.org/specs/web-apps/current-work/#the-tbody-element(不要用xp下的Opera打开此链接)
- http://www.w3school.com.cn/tags/tag_tbody.asp
这篇文章发布于 2009年12月31日,星期四,09:11,归类于 编码。 您可以跟踪这篇文章的评论通过 RSS 2.0 feed。 您可以留下评论,或者从您的站点trackback。

你写了两个tbody的原因是什么呢?在FF下面测试,只写一个tbody是没有问题的。
我猜想是不是由于FF认为另一个tbody不算是table的正文呢?
呃,看来上面的原因肯定说的不对。因为把为空的tbody填上东西,边框就出来了。。
@simaopig 其实也是无意间发现的,两个tbody并没什么毛病,只是在老的代码里发现了空的tbody,然后就发现这个问题了~