Google字体使用网络开放字体格式(WOFF),这很好,因为它是W3C推荐的字体格式。
早于IE9的IE版本不支持Web开放字体格式(WOFF),因为那时它不存在。要支持<IE9,您需要以嵌入式开放类型(EOT)提供字体。为此,您需要编写自己的@ font-face css标记,而不是使用Google的embed脚本。另外,您需要将原始的WOFF文件转换为EOT。
您可以在这里先将WOFF转换为EOT,方法是先将其转换为TTF,然后再转换为EOT:
http //convertfonts.com/
然后,您可以像这样提供EOT字体:
@font-face {
font-family: 'MyFont';
src: url('myfont.eot');
}
现在,它可以在<IE9中使用。但是,现代浏览器不再支持EOT,因此现在您的字体将无法在现代浏览器中使用。因此,您需要同时指定它们。src属性通过逗号分隔字体网址并指定类型来支持此功能:
src: url('myfont.woff') format('woff'),
url('myfont.eot') format('embedded-opentype');
但是,<IE9不明白这一点,它只是在第一个引号和最后一个引号之间抓取文字,因此它实际上会得到:
myfont.woff') format('woff'),
url('myfont.eot') format('embedded-opentype
作为字体的URL。我们可以通过以下方式解决此问题:首先指定一个仅包含一个EOT格式网址的src,然后指定第二个src属性,该属性适用于现代浏览器,<IE9无法理解。由于<IE9无法理解,它将忽略该标记,因此EOT仍将正常工作。现代浏览器将使用它们支持的最后指定的字体,因此可能使用WOFF。
src: url('myfont.eot');
src: url('myfont.woff') format('woff');
因此,仅因为在第二个src属性中指定format('woff')
,<IE9无法理解它(或者实际上它只是无法在url中找到字体)myfont.woff') format('woff
),并且将继续使用第一个指定的(eot)。
因此,现在您的Google Webfonts可用于<IE9和现代浏览器!
有关不同字体类型和浏览器支持的更多信息,请阅读Alex Tatiyants撰写的这篇完美文章:http ://tatiyants.com/how-to-get-ie8-to-support-html5-tags-and-web-fonts/