我有一个基于表格的布局,它分为四列,其中两列用于填充。在大多数浏览器中它工作正常,但至少在正常和兼容模式下的IE9上,单元格不是它们应该的大小。
我已经尝试将宽度定义为属性和CSS样式,但似乎都没有帮助。 See fiddle进行演示。
我想:
+------------------------------------------+
| 320 | 20 | 39 | 320 |
| | | | |
+------------------------------------------+
我得到:(四舍五入,值是小数)
+------------------------------------------+
| 324 | 19 | 34 | 321 |
| | | | |
+------------------------------------------+
使用实际内容而不是占位符内容,差异更加夸大,最左边的列为 357 ,最右边的 299 像素宽。
我最初只有两列填充边缘,但切换到当前版本作为尝试修复。它没有效果。
这是针对HTML简报的,因此无法使用无表格布局。
答案 0 :(得分:3)
在过去,我发现这是一个几乎不可能解决的问题,除非你留下一个没有固定宽度的表格元素。
如果您这样做,那么我发现该列将是调整大小的列,而其余列应该按照您要求的大小。
这并不理想,但至少它是合理可预测和可控制的。
答案 1 :(得分:1)
有助于查看您的CSS和HTML。但是在测量桌子的总宽度时不要忘记边框计数。
margin + border + padding + width = real width。
另外,请确保其中一个单元格中没有任何元素大于单元格宽度。
答案 2 :(得分:1)
我终于找到了问题的解决方案。这四个单元格本身很好,但是包含简报标题和入口的代码打破了它:
<tr><td colspan="4">Some long text here</td></tr>
我将其更改为此并开始工作:
<tr><td colspan="4" width="700">Some long text here</td></tr>
宽列的宽度是700px,无论我是否强制它,但如果不这样做,单列单元格的宽度会搞砸。我认为这是IE中的一个明显错误。
答案 3 :(得分:0)
<table width="699" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="320" height="50" valign="top"><!--test--> </td>
<td width="20" valign="top"><!--test--> </td>
<td width="39" valign="top"><!--test--> </td>
<td width="320" valign="top"><!--test--> </td>
</tr>
</table>
这应该有效