表格宽度超出div边界

时间:2010-11-21 23:14:00

标签: html css

我在div中有桌子。如果我用IE9或FF查看它就可以了。但是,如果我在IE8中查看它,表格会超出div边界。有什么想法吗?

<div>
  <table width="100%" >
    <tr>
      <td>
      </td>
    </tr>
  </table>
</div>

8 个答案:

答案 0 :(得分:16)

在这里找到了解决方案:

http://www.456bereastreet.com/archive/200704/how_to_prevent_html_tables_from_becoming_too_wide/

  

诀窍是使用CSS属性table-layout。可能需要三个   值:自动,固定和继承。正常(初始)值是auto,   这意味着表格宽度由其列和任何列表示   边界。换句话说,如果有必要,它会扩展。

     

您要使用的是table-layout:fixed。巴姆!现在表格如下   你在CSS中指定的宽度。不多也不少。对我来说   令人惊讶的是,这似乎得到了浏览器的广泛支持。唯一的   任何不支持它的意义的浏览器是IE / Mac,和   该浏览器的重要性正在迅速接近零。

     

接下来是决定如何处理不适合的内容   桌子了。如果表只包含文本,则自动换行:break-word   (CSS3文本效果模块中指定的自动换行)将强制执行   浏览器根据需要打破单词以防止溢出。

答案 1 :(得分:7)

您可以使用overflow: scroll;将其设置在自己的div中,以便在表扩展太多时创建滚动条...

答案 2 :(得分:3)

将样式display:table添加到div标记。这会导致元素像表一样运作。

答案 3 :(得分:2)

将表格宽度设为100%,这样它就会占用div并且不会越过它。

答案 4 :(得分:2)

作为user384080 mentioned,应添加table-layout:fixed。但是,仅仅table-layout并不能解决问题。请确保您还添加width属性:

<table style="width:100%;table-layout:fixed">

答案 5 :(得分:0)

检查浏览器默认设置的大小调整大小。

box-sizing: content-box;的意思是:

  

指定的宽度和高度适用   分别为宽度和高度   元素的内容框。该   填充和元素的边框是   在这个区域之外。

box-sizing: border-box;的意思是:

  

指定的宽度和高度   确定边框   元件。任何填充或边框   在元素上指定的是绘制的   在剩下的区域内。内容   框是通过减去。来计算的   填充或边框宽度   指定的各方   宽度和高度。

晚上只是改变box-sizing值。 这里有一篇关于它的文章:http://ie8demo.com/BoxSizing.aspx

答案 6 :(得分:0)

你在div上设置了宽度吗?如果是这样,它将坚持其宽度,允许表重叠。尝试删除宽度,它将扩展到其容器的宽度。如果你想让thwe div适合表格大小,你可以漂浮它。

答案 7 :(得分:0)

除了第一个答案,还要确保 div 的容器元素有 overflow: autoscrollclearfix hack 也很有帮助。