我在div中有桌子。如果我用IE9或FF查看它就可以了。但是,如果我在IE8中查看它,表格会超出div边界。有什么想法吗?
<div>
<table width="100%" >
<tr>
<td>
</td>
</tr>
</table>
</div>
答案 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: auto
或 scroll
。 clearfix hack 也很有帮助。