基本上我遇到的问题是在Safari / Chrome中它改变了列的宽度,即使我已经指定了a)表格上的宽度,b)表格布局:固定,以及c)我的特定宽度添加了填充和边框值的第一行加起来指定的表的宽度。在IE7和Firefox 3中,表格呈现相同。但是在Safari / Chrome中,它决定通过从其他列中获取空间来扩大第二列。
有什么想法吗?我有一个very simple sample page你可以查看,以及an image显示如何在所有三个浏览器中呈现表格进行比较。
答案 0 :(得分:6)
在有缺陷的webkits中,table-layout: fixed
也会为您的表格单元格box-sizing: border-box
提供。浏览器检测的一种替代方法是显式设置box-sizing: border-box
以获得跨浏览器的一致行为,然后相应地调整宽度和高度(必须增加宽度和高度以包括填充和边框)。
#my-table td {
box-sizing: border-box;
}
答案 1 :(得分:3)
我能够通过使用固定宽度从<th>
中删除填充来解决此问题。然后,您可以安全地将填充添加到<td>
答案 2 :(得分:1)
环顾四周后,我认为这是由以下webkit错误造成的:13339和18565。基本上是在计算列的最终宽度时如何使用边框和填充值的问题。
我最终做了一些浏览器嗅探并根据webkit浏览器设置了一些不同的css值,以便最终渲染与FF和IE相同。
答案 3 :(得分:0)
您是否尝试过加载一些重置CSS? http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/
答案 4 :(得分:0)
所以我必须设置所有列像素宽度,否则不要使用table:fixed-width。