2015-07-04 107 views
5

我有一套嵌入式字体可以在Firefox,Chrome,Safari中正常工作 - 但是,令人惊讶的是,惊喜不在IE(v11,但在10和那也没用)。IE11嵌入字体将无法正常工作 - 尝试所有常用方法

我可以得到一些加载在IE中,但不是其他人。 CSS的样品:

/* working */ 
@font-face { 
    font-family: 'FoundersGroteskWeb-Semibold'; 
    src: url(./fonts/FoundersGroteskWeb-Semibold.eot); 
    src: url(./fonts/FoundersGroteskWeb-Semibold.eot?#iefix) format('embedded-opentype'), 
     url(./fonts/FoundersGroteskWeb-Semibold.woff) format('woff'); 
    font-style: normal; 
    font-weight: normal; 
      } 

/* not working */  
@font-face { 
    font-family: 'FoundersGroteskX-CondensedWeb-Bold'; 
    src: url(./fonts/FoundersGroteskX-CondensedWeb-Bold.eot); 
    src: url(./fonts/FoundersGroteskX-CondensedWeb-Bold.eot?#iefix) format('embedded-opentype'), 
     url(./fonts/FoundersGroteskX-CondensedWeb-Bold.woff) format('woff'); 
    font-style: normal; 
    font-weight: normal; 
} 

的字体供应,所有命名正确,等一个不同之处,我注意到的是,所有其他浏览器中加载WOFF文件,而IE浏览器使用(第一,非#iefix) eot文件。所以我试着删除所有对eot文件的引用,迫使IE11使用woff。同样,它加载了第一个罚款,但没有使用第二个(所有其他浏览器加载都没有问题)。

当我检查IE的网络选项卡时,我可以看到第一个字体的200响应,但第二个字体没有任何内容,看起来像是可能会在css的分析上窒息。但是,鉴于这两个声明与字体名称相同,我不明白为什么会这样。

任何人都有什么想法我可以尝试,因为我已经用尽了吸管来抓住?

回答

8

IE 9(以及我认为10和11)在字体名称声明上有31个字符限制。请尝试将您的字体名称重命名为“FoundersGroteskX-CndWeb-Bld”;这是30个字符,只是为了安全(因为这31个字符的限制是包括引号和分号。

+0

这做到了 - 太感谢你了,我会在我心里! – jaucourt

+0

万岁IE和它的怪癖。您会惊讶地发现IE7/IE8中没有此限制:D –

+0

Windows API的字体名称长度始终为30个字符。例如,请参阅https://msdn.microsoft.com/en-us/library/2ek64h34.aspx。我觉得奇怪的是,更长的名字似乎在IE7和8中起作用!等等,如果这是IE7和8中的一个错误,并且它涉及缓冲区溢出,并且错误最终在IE9中得到修复。 –

0

根据您以前的建议我也试图尽量减少字体名称,但这仍然不能在最新的IE浏览器:

</style> 
<style type="text/css"> 

@font-face { 
    font-family:"Avenir"; 
    src: url("./Fonts/Avenir.eot"); 
    src: url("./Fonts/Avenir.eot?#iefix") format("embedded-opentype"), 
     url("./Fonts/Avenir.woff") format("woff"); 
} 

</style> 

你觉得IE不再接受WOFF字体

+0

我不认为woff格式是问题。在其他浏览器中加载字体吗?您使用的是哪个版本的IE?在IE中加载其他woff字体吗? – jaucourt

+0

是的,他们都加载罚款在除IE以外的所有浏览器!很奇怪... – Gabriel

0

检查字体下载安全,应使加载的字体图标

导航到:?

IE> Internet选项>联网>自定义级别>下载>字体下载