2011-10-07 15 views
0

我在所有的Internet Explorer版本中都有一个TABLES问题,或者说TD的高度让我发疯。IE中的不同处理表td-height与所有其他处理表?

我有下面的标记

<table> 
    <tbody> 
     <tr style="vertical-align:top;"> 
      <td id="TD1" width="35" colspan="2" style="background-color:yellow; height:1%;"> 
       <div id="DIV1" style="height:10px; background-color:red;"></div> 
      </td> 
      <td id="TD2" width="15" rowspan="2" style="height:99%;"> 
       <div id="DIV2" style="height:160px; background-color:green;"></div> 
      </td> 
     </tr> 
     <tr style="vertical-align:top;"> 
      <td id="TD3" width="25"> 
       <div id="DIV3" style="height:60px; background-color:blue;"></div> 
      </td> 
      <td id="TD4" width="10"> 
       <div id="DIV4" style="height:80px; background-color:orange;"></div> 
      </td> 
     </tr> 
    </tbody> 
</table> 

为了更好地理解可以从w3schools.com

http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_td_height执行在tryit编辑器的代码。

我想解释,我试图解释:)

虽然DIV2的高度小于或大于DIV1和DIV3或DIV4的高度,它像预期相同。但是当DIV2的高度大于DIV1和DIV3或DIV4的高度时,IE以TD3和TD4相同的比例上升TD1。

在所有其他浏览器中,只有TD3和TD4引发。 TD1的高度仍然与DIV1相同。

有人有想法或解决方法我该如何解决这个问题?

无表格布局是可悲的选择。

+0

检查的第一件事是,IE浏览器是不是在Quirks模式。另外,您测试的是哪个版本的IE? – Spudley

+0

没有一个适当的文档类型,你永远不会让IE试图像其他更现代的浏览器一样执行。 IE处于怪癖模式。 – Rob

+0

@Spudley IE7(兼容模式),IE8,IE9 – elweilando

回答

0

没有一个适当的文档类型,你永远不会得到IE试图执行像其他更现代的浏览器。 IE处于怪癖模式。使用这一个:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

或者这一个:

<!DOCTYPE html>

+0

我认为文档类型是正确的: \t <!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN”“http:// www。 w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> \t \t document.compatMode is CSS1compat – elweilando

+0

@elweilando - 新的网页没有用于过渡文档类型。过渡是为了从旧的,不赞成使用的标记中“过渡”。始终使用严格的文档类型。 – Rob

+0

我尝试了两个声明,但它什么也不改变。 Html5以及xhtml strict在这种情况下与过渡相同。 – elweilando