【发布时间】:2011-08-24 13:33:49
【问题描述】:
我正在创建一个应用程序,它允许用户通过添加和删除列和行、设置列宽和单元格跨度以及将元素插入表格单元格来操作表格结构。在测试时,我遇到了一个场景,其中 Firefox 4 和 Internet Explorer 8 以我期望的方式呈现表格,而 Google Chrome 11 没有。我正在使用 table-layout: auto 并且我知道 CSS 没有指定在这种情况下使用的渲染算法(http://www.w3.org/TR/CSS21/tables.html,第 17.5.2.2 节)。尽管如此,如果可能的话,我希望在上述三个浏览器中拥有一致的视图。
这里有一个非常简单的场景来说明不同的渲染(在 Chrome 和 Firefox/IE 中尝试以查看差异):http://jsbin.com/ayuja4/3
即使表格足够宽以包含蓝色 div(因为第一列设置为 200 像素,而第二列虽然宽度为 100 像素,但必须扩展到 300 像素才能包含绿色 div),在 Chrome 中,第一列的宽度超过了 200 像素。这会导致最后一行出现额外的、不必要的空间,这正是我想要避免的。
有什么想法可以让这个表格在 Chrome 中看起来与在 Firefox 和 Internet Explorer 中一样吗?我不需要纯 HTML/CSS 方法——用 JavaScript 操作表格是一个有效的选择,如果它解决了我的问题。我已经在考虑使用固定的表格布局,但这会导致处理比列宽的元素需要额外的努力,所以这是不得已的选择。
【问题讨论】:
-
似乎是 Chrome 中的一个错误,即使 IE 6 也能做到这一点。报告错误,希望他们会修复它,Chrome 用户将获得自动更新(除非您没有连接到互联网,否则无法避免),您的工作就完成了。
-
我已经通过 Chrome 的错误报告功能报告了它。不幸的是,这意味着我不会收到任何反馈。
标签: javascript html css google-chrome