如何使用 Modernizr 检测 Webfont 支持并在不支持的情况下推送 Cufon?我基本上使用了 90% 的 Google Web Font 包,另外 10% 是来自 FontSquirrel 的包。
如果支持的话,我想依赖 Webfonts,因为这些词是可索引的并且对 SEO 友好,但如果不支持这些词,我仍然想渲染 Cufon 做得很好的正确字体。
基本上每个浏览器都有@font-face 支持:http
:
//caniuse.com/#search=font 所以你真的不需要cufon 后备。
那就是说..它是:
if (!Modernizr.fontface) Cufon.now();
但实际上,您根本不需要使用 Cufon。
Paul 说得对,即使 IE7 和 IE8 也支持 webfonts(他们支持 .EOT webfonts),而且他们确实支持它是一个普遍的事实,我只是不知道为什么它对我不起作用。
事实证明这是 CSS 文件中的路径渲染问题。我正在使用 SquishIt ASP.NET MVC 插件来最小化和捆绑 CSS 文件。
当我将来自 FontSquirrel 包的 stylesheet.css 文件包含在 SquishIt 包中时,对 .eot 字体的支持在浏览器 IE7 和 IE8 中将不起作用。经过艰苦的测试这个错误后,我发现如果文件单独包含(不是在 SquishIt 包中),两个提到的浏览器都将支持 .eot webfonts,但当 CSS 包含在包中时将无法立即显示正确的字体。
显然 SquishIt 重写了文件的路径,也重写(或编码)了“?iefix”字符串,从而使旧的 IE 无法识别正确的 .eot 文件并且无法正确呈现字体。