Internet Explorer中的@font-face无法正常工作

32

我正在尝试让Internet Explorer渲染我的漂亮字体,但它无法正常工作。这些字体在Firefox中可以正常显示,并且我可以在我的Apache访问日志中看到IE已经获取了这些字体。所以它正在解析font-face CSS标签,只是不渲染它们。

我使用的转换字体的网站是:http://www.kirsle.net/wizards/ttf2eot.cgi。我尝试过Microsoft的WEFT工具,但它不能正常工作。安装并打开后,它说“第一次运行,请执行此操作……”,然后就一直挂起了。

这是我的CSS:

@font-face
{
   font-family: 'HelveticaLTCN';
   src: url('HelveticaNeueLTCom-LtCn_0.eot');
   src: local('HelveticaNeuel TCom LtCn'), url('HelveticaNeueLTCom-LtCn_0.ttf') format('TrueType');
}
任何想法为什么IE不能呈现字体?
编辑:还应该提到,我正在使用以下方式调用字体:
p .mytext
{
   font-family: HelveticaLTCN;
}
15个回答

0

IE的一个特殊之处在于,它要求font-family名称必须与字体属性中的名称完全相同。而Chrome和其他浏览器允许您随意命名font-family,但IE不是这样。


你好,如何查找字体属性中的名称?是否有字体属性文件?需要特殊工具打开 .eot 文件以查找字体属性吗? - Simon Green
@SimonGreen 看看这个答案,有一个很好的解释:https://dev59.com/uGQn5IYBdhLWcg3wgnPg - Alex

0

IE不接受在src描述符中包含格式字符串的字体 - 第二个src行可能是罪魁祸首。如果您将其删除(或删除格式字符串),会发生什么?

接下来 - 有时,IE对于CSS中是否使用引号围绕值有点过于迂腐。尝试使用font-family:“HelveticaLTCN”代替?


我在每个font-family中添加了引号,并从font-face中删除了第二个'src'。 仍然不起作用。 可以尝试使用此程序:http://code.google.com/p/ttf2eot/。 我会报告结果的 >.< - panas

0
我遇到了和panas一样的问题。我使用onlinefontconverter.com将字体从ttf转换为eot。好吧,看来这就是问题所在:我刚刚尝试了atsjr提到的fontsquirrel.com,现在一切都正常工作了!

0

最好将font-face属性直接指向本地而不是在线,例如url('../fonts/font-name.eot')。当您在本地服务器上运行网页时,IE和其他浏览器无法“看到”字体。


0
在解决一个类似问题的时候,我注意到一些情况下 DOCTYPE 的定义会影响 IE 中嵌入的字体。当我移除了 DOCTYPE 的定义时,该字体就正常显示了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接