你是对的,谷歌只为你的特定用户代理提供字体。把它们全部搞定是很棘手的。
您提到您有一个用于获取不同字体格式的 PHP 脚本,因此您可能不需要这两个选项,但无论如何我都会列出它们:
选项1
本文介绍了如何下载所有不同格式的过程:
http://ijotted.blogspot.com/2012/05/download-eot-ttf-woff-formats-of-font.html
简而言之,您需要使用用户代理欺骗来获取所有不同的格式。
选项 2
另一种选择是获取 TTF 版本(因为这很容易),然后前往http://www.fontsquirrel.com/tools/webfont-generator让它们转换/生成所有其他版本。
如果您最终使用此选项,那么知道Joe Maller 已将完整的下载包放在一起以一次获取所有 TTF 字体文件可能会很有用(尽管它可能有点过时)。
使用 CSS 服务
一旦你有了所有不同的版本,就为你的 CSS 使用类似这样的语法。这是来自FontSpring 的 Bulletproof Font-Face Syntax。
@font-face {
font-family: 'MyFontFamily';
src: url('myfont-webfont.eot?#iefix') format('embedded-opentype'),
url('myfont-webfont.woff') format('woff'),
url('myfont-webfont.ttf') format('truetype'),
url('myfont-webfont.svg#svgFontName') format('svg');
}
最后一行当然取决于您是否有 SVG 字体文件。这让我们...
SVG
第一个链接声称:
虽然 Google 确实在运行 4.2 或更低版本的 iOS 设备上提供 SVG 字体格式,但我可以确认 SVG 是空的或损坏的。因此,Google 确实不再支持运行 iOS 4.2 及更低版本的设备。意味着,不再有 SVG 字体格式。
我无法在其他任何地方验证这一点,但是我看到很多用户抱怨 SVG 问题、字体无法加载……我倾向于忽略 SVG 作为一种选择,并专注于提供 EOT/ WOFF/TTF。这似乎是覆盖你的基地的最可靠的方法。
更新:似乎 fontsquirrel.com 可以生成 SVG 版本。因此,即使 Google 不提供 SVG 作为下载选项,您仍然可以根据需要生成它。