2015-04-03 71 views
0

我正在建立一个网站,需要通过@ font-face使用自定义字体。如果我使用.eot扩展名,IE只会显示;其他浏览器只有当我使用.ttf扩展名。有条件的评论不起作用

虽然我已经在Web上尝试了大量的建议,但我无法解决如何使用条件注释来使用这两种建议......没有任何工作适合我。

从本质上讲,我有:

<style> 
@font-face{ 
font-family: Square; 
src: url(/wpadmin/fonts/Square.ttf); 
} 

@font-face{ 
font-family: Square_IE; 
src: url(/wpadmin/fonts/Square.eot); 
} 

</style> 

<!--[if !IE]><!--> 
<style> 
#Title{ 
font-family:Square; 
} 
</style> 
<!--<![endif]--> 

<!--[if IE]><!--> 
<style> 
#Title{ 
font-family:Square_IE; 
} 
</style> 
<!--<![endif]--> 

字体只能在IE中显示正确的位置 - 不能在其他浏览器。如果我删除[如果IE]语句,它会在其他浏览器中正确显示。

我已经尝试了很多变体,包括HTML体内的条件语句。

我在做什么错?

+0

不知道,但我认为[如果IE]部分应该是里面的评论,让其他浏览器会忽略它 – 2015-04-03 10:03:03

+0

你还没说IE的什么版本,但条件注释不从版本工作11 – Tim 2015-04-03 10:03:51

+0

您必须使用'-ms-'作为IE特定css的前缀。 – Rajeshwar 2015-04-03 10:06:25

回答

2

条件注释在IE 11中不起作用,但这也不是标准方法。您不需要不同的字体名称,您可以为所有引用一个名称的跨浏览器字体文件列表执行此操作。

/* declare all the files - browser will use the best it understands */ 

@font-face { 
    font-family: 'Square'; 
    src:url('Square.eot'); 
    src:url('Square.eot?#iefix') format('embedded-opentype'), 
     url('Square.ttf') format('truetype'), 
     url('Square.woff') format('woff'), 
     url('Square.svg#Square') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 


/* now just reference the one name */ 

#Title { 
    font-family:Square; 
} 
+0

谢谢,蒂姆 - 它不工作 - 也就是说 - 它在IE中正确显示,但不在其他浏览器中显示... – JohnG 2015-04-03 10:17:29

+0

啊 - 现在工作 - 我调整了一下 - 谢谢。它似乎只喜欢一个src:行,而不是两个。 – JohnG 2015-04-03 10:20:48

+0

我希望IE11无论如何都要使用TTF字体。 http://caniuse.com/#feat=ttf – Tim 2015-04-03 10:22:50