Internet Explorer @ font-face失败

我试图让Internet Explorer呈现我漂亮的字体。 这不起作用。 他们在Firefox中工作正常,我可以在我的Apache访问日志中看到,IE已经拉动了字体。 所以它parsing了font-face CSS标签,而不是渲染它们。

我用来转换字体的网站是: http : //www.kirsle.net/wizards/ttf2eot.cgi 。 我尝试了微软的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; } 

如果你已经扔在毛巾上,或者你还在为此苦苦挣扎,我强烈build议字体松鼠 。 它取代WEFT比任何其他在线.eot生成器更好。 作为一个巨大的好处,它提供了所有需要的跨浏览器格式在一个zip文件以及一个工作的CSS + HTML样本页面。 这是@fontface必杀技最接近的东西。

请记住:.eot字体必须是最后一个“src”。 如果没有,IE会重写configuration并崩溃字体。

 @font-face { font-family: "Aller Bold"; src: url(fonts/Aller_Bd.ttf) format("truetype"); src: url(fonts/Aller_Bd.eot); } 

在那里,IE浏览器会和其他的@ font-face定义有一些区别。 我以前发现这是惊人的帮助 – http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/

总之,他们推荐最好的办法是以下。 唯一的变化是在字体url的末尾添加一个问号。 奇怪,不是?

 @font-face { font-family: 'Graublau Web'; src: url('GraublauWeb.eot?') format('eot'), url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype'); } 

还有很多其他的select,即为其他人指定EOT文件的单独的@ font-face标签。

我遇到了很多人在这里遇到的同样的问题。 问题原来是简单的IE浏览器对font-family的值有一个较短的字符限制。 我给了我的字体家族一个简短的名字,并最终使用的字体松鼠吐出的CSS。

奇怪的一个!

有一件事你需要检查是

.css文件和.eot应该在相同的文件夹,如果你做url('HelveticaNeueLTCom-LtCn_0.eot')

或者像src:url( http://www.example.com/path/to/url/Helvetica.eot

就我所知,行情是可选的。

ps#我正在做我的博客字体embedded很长一段时间,它的工作正常。

font-face的最佳定义是:

 @font-face { font-family: 'Graublau Web'; src: url('GraublauWeb.eot?') format('eot'), url('GraublauWeb.woff') format('woff'), url('GraublauWeb.ttf') format('truetype'); } 

对我有效的是以下声明:

 @font-face { font-family: 'Frutiger45LightBoldItalic'; src: local('☺'), url('../font/frutiger-bolditalic-webfont.woff') format('woff'), url('../font/frutiger-bolditalic-webfont.ttf') format('truetype'), url('../font/frutiger-bolditalic-webfont.svg#webfontR2tDy7QH') format('svg'), url('../font/frutiger-bolditalic-webfont.eot'); } 

所以只有一个src属性,而且.eot在结尾,没有问号。

我之前所尝试的,并没有工作:

  • 把一个单独的行(在另一个src之前或之后)
  • 在…之后放一个问号

这对我工作:

 @font-face { font-family : 'din-pro'; src : url('../fonts/din/DINPro-Medium.woff') format('woff'); src : url('../fonts/din/DINPro-Medium.otf') format('otf'); src : url('../fonts/din/DINPro-Medium.ttf') format('truetype'); font-weight : 500; font-style : normal; } @font-face { font-family : 'din-pro'; src : url('../fonts/din/DINPro-Regular.woff') format('woff'); src : url('../fonts/din/DINPro-Regular.woff2') format('woff2'); src : url('../fonts/din/DINPro-Regular.ttf') format('truetype'); font-weight : 400; font-style : normal; } @font-face { font-family : 'din-pro-ie'; src : url('../fonts/din/DINPro-Regular.eot?'); font-weight : 400; font-style : normal; } @font-face { font-family : 'din-pro-ie'; src : url('../fonts/din/DINPro-Medium.eot?'); font-weight : 500; font-style : normal; } 

请注意,我使用-ie后缀单独定义了IE的字体。 当使用字体,我会做一些像p { font-family : din-pro, din-pro-ie } 。 testing和工作从IE5转发使用仿真。

IE将不会接受一个包含src描述符中的格式string的字体 – 第二个src行可能是罪魁祸首。 如果你删除它(或删除格式string?)会发生什么?

接下来 – 有时,IE可能有点迂回,你是否在CSS中使用引号。 试试font-family: "HelveticaLTCN"而不是?

我有和panas一样的问题。 我使用onlinefontconverter.com从ttf转换为eot。 那么,似乎是这个问题:我只是尝试了fontsquirrel.com作为atsjr指出,一切工作正常!

虽然在类似的问题挣扎,我注意到,不知何故DOCTYPE定义影响IEembedded字体。 当我删除DOCTYPE定义字体正确显示。

这段代码可以解决我在IE中的问题:

  @font-face { font-family: 'kurdish'; src: url('font/zkurd_aras.eot?') format('eot'), url('font/zkurd_aras.woff') format('woff'), url('font/zkurd_aras.ttf') format('truetype');} 

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

IE的一个特殊之处在于,它要求font-family名称与字体属性中的名称完全相同。 虽然Chrome和其他人可以让你指定你想要的字体系列,但IE并非如此