论坛首页 Web前端技术论坛

IE7、IE8 对于W3C标准 tbody 的兼容问题

浏览 2529 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-17  
[size=medium][color=blue]最近在处理静态化模板的时候,动态生成右上角登录框,出现了IE7无法显示的问题。
在IE7中一闪而过。
但是在IE8、firefox、chrome 中都能正常显示。
源码如下(涉及商业问题,略作修改):
//登录html
function DLH(loginName){
	var dengl = "";
   	dengl+='<tr>';
    dengl+='    <td>您好,'+loginName+' 【<a href="javascript:logout();">退出登录</a>】【<a href="userM.html">我的组织</a>】&nbsp;<a href="#">帮助</a></td>';
    dengl+='</tr></tbody>';
    return dengl;
}


之后发现此源码并不是很规范,没有严格执行W3C标准,才会出现以上不兼容问题!
更改的地方其实很简单,就是增加 <tbody>

修改后如下:
//登录html
function DLH(loginName){
var dengl = "";
   dengl+='<tbody><tr>';
    dengl+='    <td>您好,'+loginName+' 【<a href="javascript:logout();">退出登录</a>】【<a href="userM.html">我的人脉</a>】&nbsp;<a href="#">帮助</a></td>';
    dengl+='</tr></tbody>';
    return dengl;
}

之后经过询问高人,明白了<thead> <tbody> <tfoot>的好处。

总结如下:
<table>
<thead><tr>...</tr></thead>
<tbody><tr>...</tr></tbody>
<tfoot><tr>...</tr></tfoot>
</table>
当然没有必要全都用到,但是必须记住的是如果有thead或tfoot,就必须要tbody。

加了tbody后准确来说并不是影响下载速度,而是呈现速度。

浏览器对Table的解释是等待整个table全部加载完才显示。
如果加入tbody,浏览器则一边下载一边显示已经下载的内容。 [/color][/size]
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics