这是一个棘手的问题。我将从实际的解决方案开始:
​
使用<wbr>
标签代替零宽度空间 U+200B, 。它没有已知的缺点,只是它可能会激怒那些以标准发誓的人。但是由于某些浏览器中的一些问题,它并不总是具有预期的效果(允许直接换行),并且似乎要涵盖几乎所有浏览器,您需要这个:
<wbr><a class=wbr></a>
使用 CSS 代码
.wbr:after { content: "\00200B"; }
另一种方法是将零宽度空间包装在具有减小字体大小的元素中,例如
<span style="font-size: 0.8em">​</span>
或者,更简单,
<small>​</small>
然后是解释。该问题似乎只出现在 IE 9 的 Quirks 模式下。我的假设是,在 Quirks 模式下,IE 对字体管理应用了更原始的方法。
当它在 Verdana 文本中遇到零宽度空格时,它会注意到 Verdana 没有该字符(与大多数其他常见字体不同),并且可能会从浏览器默认字体中选择它。这意味着默认为 Times New Roman。在该字体中,零宽度空间比 Verdana 字符高,导致增加了高度要求。这听起来令人难以置信(它毕竟是零宽度,因此不可见),但事实是如果我将默认字体(在 IE 设置中)更改为 Arial,问题就会消失。
人们可能会认为这会font-family: Verdana, Arial
有所帮助。它没有,显然是因为 Quirks Mode IE 在处理字体方面非常原始:它不检查font-family
列表而是回退到其默认字体。
让你的页面避免Quirks Mode可以避免 IE 9 上的问题,但我担心一些旧版本的 IE 可能仍然存在问题。