如何使用Modernizr来检测客户端是否支持WebFonts?

时间:2012-03-05 18:46:32

标签: modernizr webfonts

如何使用Modernizr检测Webfont支持并推送Cufon,如果它没有?我基本上使用90%的Google Web Font软件包,另外10%是FontSquirrel的软件包。

我希望依赖Webfonts,如果支持,因为这些单词是可索引的和SEO友好的,但如果不支持那些,我仍然想要渲染Cufon做得很好的正确字体。

2 个答案:

答案 0 :(得分:1)

基本上每个浏览器都有@ font-face支持:http://caniuse.com/#search=font
所以你真的不需要一个cufon后备。

那说......是的:

if (!Modernizr.fontface) Cufon.now();

但实际上,你根本不需要使用Cufon。

答案 1 :(得分:1)

Paul说得对,即使IE7和IE8支持webfonts(它们支持.EOT webfonts),并且它们确实支持它是一个普遍的事实,我只是不知道为什么它不适合我。< / p>

结果证明CSS文件中的路径渲染存在问题。我使用SquishIt ASP.NET MVC插件来最小化和捆绑CSS文件。

当我在SquishIt包中包含FontSquirrel包中的stylesheet.css文件时,对.eot字体的支持在浏览器IE7和IE8中不起作用。在仔细测试了这个错误之后,我发现如果文件单独包含(不在SquishIt包中),两个提到的浏览器都会支持.eot webfonts,但是当包含在CSS中时,将无法立即显示正确的字体。

显然Squish会重写文件的路径,重写(或编码)“?iefix”字符串,从而使旧的IE无法识别正确的.eot文件,并且无法正确呈现字体。