使用break-word在IE8中表渲染问题

时间:2012-09-18 17:02:16

标签: css internet-explorer css-tables

我有一个基于用户输入动态构建的表 - 也就是说,用户在表中输入数据,并确定一行中有多少字段等。因此,我无法控制长度的数据,以及有限的布局控制。我仍然设法构建在FF,Chrome,Safari中运行良好的东西,但我在IE8和IE9中遇到了烦人的问题。我为所讨论的表格单元格包含以下css:

td.dc {
    white-space:normal;
    -ms-word-wrap: break-word;
    max-width: 80em;
}

IE忽略所有这三个标记,并继续整行。如果我将单元格的内容包装在div中并将css应用于div,它可以在IE9中运行,但仍然不在IE8中。在IE8中,文本确实在80 em之后换行,但是单元格仍然被渲染得足够宽以适应未展开的行,因此表中的其他所有内容都被推翻了。有没有办法解决?

[编辑]我创建了一个jsfiddle来说明破坏的特定情况:http://jsfiddle.net/qz3rv/3/我已经意识到(错误报告中不清楚的)是只有某些案例似乎被打破了 - 也许不得不做/在数据中。

1 个答案:

答案 0 :(得分:1)

在最小的HTML环境中测试时,发布的代码在标准模式下在IE上运行。显然,您的代码在Quirks Mode中运行。因此,请尝试在HTML文件的最开头添加<!doctype html>

考虑使用一个基本上小于80em的值进行测试,否则。请注意,white-space:normal只是重新确认默认值,并且-ms-word-wrap: break-word及其标准对应物在某些例外规则中意味着打破(违反正常的书写规则),应该避免。< / p>

另请注意,表列宽度是一项棘手的业务,要描述它的特定问题,您应该显示表标记和关联的CSS。