§ ITPOW >> 文档 >> XHTML

注意两层 div 套 table

作者:vkvi 来源:ITPOW(原创) 日期:2006-8-26

当一层 div 中套一层 div,再套一层 table 时,又有边框的情况要,要特别注意百分比宽度的使用。看如下代码:


<div style="width:200px;background-color:#FF0000;">200px标尺</div>

<div style="width:200px;background-color:#0000FF;">
  <div style="width:100%;border:5px solid #000000;">
    <table width="100%" border="0">
      <tr><td> </td></tr>
    </table>
  </div>
</div>

<div style="width:200px;background-color:#0000FF;">
  <div style="border:5px solid #000000;">
    <table width="100%" border="0">
      <tr><td> </td></tr>
    </table>
  </div>
</div>

<div style="width:200px;background-color:#0000FF;">
  <div style="width:100%;border:5px solid #000000;">
    <div style="border:5px solid #000000;">
    <table width="100%" border="0">
      <tr><td> </td></tr>
    </table>
    </div>
  </div>
</div>

<div style="width:200px;background-color:#0000FF;">
  <div style="border:5px solid #000000;">
    <div style="width:100%;"> </div>
  </div>
</div>

注意其中某些 div 是没有宽度的。在 IE 中结果如下图:

ie.bmp

开始我试图解释 table 的宽度受上一层 div 宽度指定与否的影响,如果没有指定上一层 div 的宽度,table 的宽度是 100% 时就表示 table 的宽度是上层 div 的物件宽度(包括边框),但我看了在 FireFox 中的效果后,放弃了这种解释,因为事情远没有我们想象的简单,在 FireFox 中的效果如下:

ff.bmp

这里面两家浏览器对 div 的宽度和边框解释不同,但忽略这一点就算微软和 W3C 站出来解释,我想也没有多大意义,因为太复杂的规则限制了我们网站的设计,所以我认为,如果是两层或以上的 div 就不要嵌套 table,如果要嵌套就要注意 border 和 width,有时候,可以使用像素来表示表格的宽度而不是百分比,这样可以避免复杂的规则。

相关文章