IE8在标准模式下的斜杠之前忽略零宽度空间

Eli*_*ria 6 html internet-explorer-8

我有一个可变宽度单元格的表,我想让浏览器选择在斜杠之前插入换行符,而不强制它.我通过在斜杠之前插入一个零宽度空格(ZWSP)字符来尝试这个,并且它在我测试它的所有浏览器中都能正常工作,除了IE6和IE8.

对于IE6,我使用一些Javascript来替换带有<wbr>标签的字符 - 这不是最优雅的解决方案,但它确实有效.

在IE8中,我还没有找到解决它的实用方法.它弄乱了我桌子的布局.我发现它并不仅限于桌子.它似乎发生在任何一种元素上.浏览器拒绝确认ZWSP,而是选择让文本流出框,这看起来很难看.我注意到我可以通过将浏览器放入兼容性视图来使浏览器正确处理它,但这会给我带来其他问题.

有没有人知道一种简单实用的方法可以使ZWSP在IE8中的运行方式如此?

您可以使用此代码来测试问题:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>zwsp test</title>
</head>
<body>
<div style="width: 50px; border: solid black 1px; font-size: 15px">
    Miles&#8203;/gallon
</div>
</body></html>
Run Code Online (Sandbox Code Playgroud)

小智 4

我怀疑这可能是 IE8 中的一个错误。我可以引发您想要的行为的唯一方法是将斜杠更改为除斜杠(\u2215):

Miles&#8203;&#x2215;gallon
Run Code Online (Sandbox Code Playgroud)

由于某种原因,IE8 不喜欢斜杠太靠近。

  • 似乎你总是可以指望微软让事情变得复杂。对于他们在 IE8 中修复的每个错误,似乎他们引入了一个新的错误。无论如何,我尝试了你的解决方案并且有效。谢谢。 (2认同)