如何解决IE不尊重td宽度
| 我有一个基于表格的布局,分为四列,其中两列用于填充。在大多数浏览器中,它都能正常工作,但至少在IE9上,无论是在正常模式还是在兼容模式下,单元的大小都不应该达到预期。 我尝试将宽度定义为属性和CSS样式,但似乎都没有帮助。参见小提琴进行演示。 我想要:+------------------------------------------+
| 320 | 20 | 39 | 320 |
| | | | |
+------------------------------------------+
我得到:(四舍五入,值是小数)
+------------------------------------------+
| 324 | 19 | 34 | 321 |
| | | | |
+------------------------------------------+
如果使用实际内容而不是占位符,则差异会更大,最左边的列为357,最右边的列为299像素。
我最初只有两列,边缘有填充物,但是尝试将其切换到当前版本。没有效果。
这是针对HTML新闻的,因此不能使用无表布局。
解决方法
在过去,我发现这几乎是不可能解决的问题,除非您保留表元素之一的宽度不固定。
如果这样做,那么我发现该列将是调整大小的列,而其余列应采用您要求的大小。
这不是理想的,但至少它是合理可预测和可控制的。
,有助于查看您的CSS和HTML。但是,在测量表格的总宽度时,请不要忘记边界计数。
边距+边框+填充+宽度=实际宽度。
另外,请确保其中一个单元格中没有大于单元格宽度的任何元素。
,我终于找到了解决问题的办法。四个单元格本身很好,但是包含时事通讯标题和入口的以下代码破坏了它:
<tr><td colspan=\"4\">Some long text here</td></tr>
我将其更改为此并开始工作:
<tr><td colspan=\"4\" width=\"700\">Some long text here</td></tr>
无论是否强制,宽列的宽度均为700像素,但如果不这样做,则单列单元格的宽度会混乱。我认为这是IE中的明显错误。
,<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>
这应该工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。