我在图标字体导致IE8进入兼容模式时遇到问题。相应地,如果将IE8强制进入边缘模式(例如通过<meta http-equiv="X-UA-Compatible" content="IE=edge" />
),则IE将会崩溃。
具体来说,我有一个自定义图标字体,我使用,并且它目前映射到的Unicode专用使用区域的的基本多文种平面。字体开始于\f000
,直到左右\f360
。
我发现有几篇文章建议分配到Unicode专用区是问题所在:
我尝试解决的问题:
\e000
-\e360
\exxx
范围)\0000
-\0360
这些解决方案均无效,IE8继续崩溃和/或进入兼容模式。我尚未尝试将字体严格限制在基本拉丁范围内,因为我有太多的字形无法容纳在127个可用位置中。
我还能够同时使用FontAwesome和Glyphicons来使IE8崩溃,而且它发生的频率似乎比使用我的字体还少。大多数情况下,初始页面加载将起作用,然后单击刷新将导致此问题。
有人对我能做什么有其他想法吗?
PS:我并不担心其他IE8 CSS @ font-face字体问题,例如这里讨论的那些IE8 CSS @ font-face字体仅适用于:before内容,有时甚至是刷新/硬刷新。我已经在那里应用了解决这些问题的技术。
长话短说,有两种方法可以解决此问题:
Basic Latin Range
:U+0020 to U+007F
Low Surrogates Range
:U+DC00 to U+DFFF
通过使用grunt-webfont
构建过程使用自定义图标字体对各种范围进行单元测试,我发现了这一点。我没有详尽地测试每个范围,但是我发现这两个都可以正常工作。
注意:基本拉丁语范围从U+0020
not开始U+0000
。该Low Surrogates Range
具有更大的地址空间,所以是preferrable,如果你有很多的字形。如果字形无法加载,它还具有渲染方盒的优势,这与混合的拉丁字符相反Basic Latin Range
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句