Google Fonts 使用 Web 开放字体格式 (WOFF),这很好,因为它是 W3C 推荐的字体格式。
早于 IE9 的 IE 版本不支持 Web 开放字体格式 (WOFF),因为它当时不存在。要支持 < IE9,您需要在 Embedded Open Type (EOT) 中提供您的字体。为此,您需要编写自己的 @font-face css 标签,而不是使用 Google 的嵌入脚本。您还需要将原始 WOFF 文件转换为 EOT。
您可以在这里将您的 WOFF 转换为 EOT,首先将其转换为 TTF,然后再转换为 EOT:
http ://convertfonts.com/
然后你可以像这样提供 EOT 字体:
@font-face {
font-family: 'MyFont';
src: url('myfont.eot');
}
现在它可以在 < IE9 中运行。但是,现代浏览器不再支持 EOT,因此现在您的字体将无法在现代浏览器中使用。所以你需要同时指定它们。src 属性通过逗号分隔字体 url 并指定类型来支持这一点:
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 格式的 url 的 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/