IE解析完全相同html代码的不同表现

    昨天晚上一不小心被IE折磨惨了,明明在*.htm中显示非常完美的HTML代码,原样放入*.aspx文件中后,就完全歇菜啦!俺把doctype也折腾了个遍,还是丝毫不得要领。难道是传说中的rpwt?! 如果您有任何讲解和建议,请不吝赐教。

    为了突出问题,我就做一个简化了的示例来表示。看如下html代码(其实超级简单,当然也正是越简单才能越说明问题,同时也就越郁闷):
<table border="1" style="display: inline;">
    
<tr>
        
<td>
            
<span style="font-family: Tahoma;">abc</span></td>
    
</tr>
</table>
<table border="1" style="display: inline;">
    
<tr>
        
<td>
            
<span style="font-family: Tahoma;">一二三</span></td>
    
</tr>
</table>
<table border="1" style="display: inline;">
    
<tr>
        
<td>
            
<span style="font-family: Tahoma;">一二三abc</span></td>
    
</tr>
</table>

    就这个html代码片断,当我以不同的文件扩展名存储在服务器上,并用IE6访问时,居然得到完全不同的效果,下图分别是htm、aspx和asp三种类型文件显示的结果:
    HTM.ASPX.ASP.gif
    看出来*.aspx文件的问题了吗?html代码完全相同的三个文件,只有文件的扩展名不相同,用IE6访问,结果*.aspx文件中对于英文字体的显示和*.htm或*.asp不尽相同。在Tahoma这个字体下,英文内容的那个表格莫名其妙的别的表格矮了2px("abc" dropped 2px)。

    想了很久又反复试验了很多文档设置参数,依然不能让IE自身解决掉这个问题。最后实在是没办法了,使用添加外层的容器的方式,总算是勉强修正了*.aspx文件中显示纯英文容表格高度不足的问题。就是在table元素外添加div容器,然后让table高度为100%,代码示例为:
<div style="height: 1px;">
    
<table border="1" style="display: inline;" height="100%">
        
<tr>
            
<td>
                
<span style="font-family: Tahoma;">abc</span></td>
        
</tr>
    
</table>
    
<table border="1" style="display: inline;" height="100%">
        
<tr>
            
<td>
                
<span style="font-family: Tahoma;">一二三</span></td>
        
</tr>
    
</table>
    
<table border="1" style="display: inline;" height="100%">
        
<tr>
            
<td>
                
<span style="font-family: Tahoma;">一二三abc</span></td>
        
</tr>
    
</table>
</div>

    问题貌视是解决了,可是为什么*.aspx文件在IE中就会特殊呢???

    软件环境:
        1、Windows XP SP2 en, IE6 + SP1
        2、Windows 2003 SP1 en, IE6 + SP1

posted on 2006-05-23 12:43  birdshome  阅读(11741)  评论(21编辑  收藏  举报

导航