2012-09-11 56 views
5

我刚发现了一个IE9的小bug。看来,IE9并不认为一段时间之前的空间是一个突破点。如在域名或文件扩展名列表中。在IE9中打开下面的提琴。IE9期间包裹错误

http://jsfiddle.net/cssguru/nNnzM/1/

我尝试使用转义字符,但它并没有帮助。有关解决方法的任何建议?

+0

嗯..在IE8中同样的问题。 –

+0

IE10有同样的问题,但我不确定它是一个错误。这可能是故意的。 –

+0

我发现添加“ 。网络  .blog   .nyc ...”可以工作,但最终会出现两个空格。这将适用于我正在做的事情,但我想我会留下线索,看看是否有其他人提出了更清晰的修复方案。请参阅http://jsfiddle.net/cssguru/nNnzM/4/ –

回答

6

这是一个令人讨厌的功能,但它可能是故意的,并不被供应商视为错误。相反,它被视为实施Unicode line breaking rules(部分很奇怪)。根据这些规则,句号(或者他们称之为FULL STOP)具有分类IS,中缀数字分隔符和“当不在数字上下文中使用时,中缀分隔符是句末标点符号。因此,他们总是在之前防止休息。“

要解决这些问题,现在可能最好在正常空间和句点之间插入U + 200B零宽度空间,例如,

.web ​.shop ​.blog ​.nyc ... 

U + 200B是一个控制字符,允许在不允许的地方换行符。

旧IE版本(IE 6)可能会遇到困难,显示一个代表U + 200B的不可表示字符的符号。另一种方法,<wbr>标签,不会有这个问题,但似乎IE 8和更新版本往往无法兑现这个古老的标签(也许是因为它从来没有达到任何标准,尽管它的实用性)。

+0

哇!感谢有见地的回应。我认为我仍然赞成我的“ .web  .shop ...”,但如果我没有得到更好的回复,我会给予您答案。 –

+0

+1我在这里看到的信息最丰富的答案之一。 –

+0

我做了更多的测试,它看起来既不是&#x200b;或工作在IE8 ... http://jsfiddle.net/cssguru/nNnzM/17/ –