谷歌字体API使用浏览器检测。如何获取所有字体变体的font-face?

11

我刚刚发现Google Font API使用浏览器检测。

这意味着当您打开 http://fonts.googleapis.com/css?family=Racing+Sans+One 时,它将仅为您当前的浏览器显示所需内容。

因此,如果我想要在所有浏览器中使用它,我就不能简单地获取它并在自己的 font-face 中使用。许多人这样做,却不知道它不能在所有地方工作。

如何获取字体的所有变体?woff2/woff/ttf等(用于在 font-face 中作为回退)?

我刚试图在Chrome中打开该API页面,更改开发者选项中的浏览器用户代理伪装,并查看变体。我至少看到了4个版本。

woof2/woff/ttf是否足够?还需要多少版本才能确保安全?是否还需要EOT/SVG版本?

3个回答

16

2
这是一个非常棒的工具!如果你一直在折腾谷歌网页字体的源代码,试图下载正确的woff、eof和svg文件,那么不用再找了。我多年来一直需要这个工具。 - nitech

14

以Open Sans为例。

http://fonts.googleapis.com/css?family=Open+Sans

使用不同的用户代理发送请求,可以查看不同的字体:.eot、.woff、.woff2、.ttf、.svg。

对于.eot,请使用以下用户代理:

IE8
Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)

IE7
Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3fY6323mHUZFJMgTvxaG2iE.eot);
}

对于.woff2文件,请使用以下用户代理:

Firefox 36.0
Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3VtXRa8TVwTICgirnJhmVJw.woff2) format('woff2'), url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');
}

对于.woff,请使用以下用户代理:

Safari 6.0
Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25

Internet Explorer 11.0
Mozilla/5.0 (compatible, MSIE 11, Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

Internet Explorer 10.0
Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)

Internet Explorer 9.0
Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US))

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3bO3LdcAZYWl9Si6vvxL-qU.woff) format('woff');
}

对于.ttf文件,请使用以下用户代理:

Safari 5.0.5
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; de-at) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1

Safari 3.1
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_5_2; en-gb) AppleWebKit/526+ (KHTML, like Gecko) Version/3.1 iPhone

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3SZ2oysoEQEeKwjgmXLRnTc.ttf) format('truetype');
}

在尝试使用其他用户代理时,我发现了另一个.ttf文件。不确定它与之前的有何不同。

Safari 4.1
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-en) AppleWebKit/533.16 (KHTML, like Gecko) Version/4.1 Safari/533.16

Firefox 5.0
Mozilla/5.0 (X11; Linux) Gecko Firefox/5.0

Firefox 3.5.9
Mozilla/5.0 (Windows; U; Windows NT 6.1; et; rv:1.9.1.9) Gecko/20100315 Firefox/3.5.9

Safari 3.1.1
Mozilla/5.0 (Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0_1 like Mac OS X; fr-fr) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5G77 Safari/525.20

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/s/opensans/v10/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}

对于 .svg 文件,请使用以下用户代理:

Safari 4.0.4
Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10gin_lib.cc

Safari 3.0
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C25 Safari/419.3

Safari 3.0
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans'), local('OpenSans'), url(http://fonts.gstatic.com/l/font?kit=cJZKeOuBrn4kERxqtaUH3Zbd9NUM7myrQQz30yPaGQ4#OpenSans) format('svg');
}

哪些浏览器支持哪些字体格式?

  1. http://caniuse.com/#search=eot
  2. http://caniuse.com/#search=ttf
  3. http://caniuse.com/#search=svg
  4. http://caniuse.com/#search=woff
  5. http://caniuse.com/#search=woff2

1
目前为止,woff和woff2基本上涵盖了所有基础知识。除了Opera Mini,但那个浏览器不支持任何东西。 - Daan van den Bergh
使用这种方法,我能够生成带有ttf字体的样式。这使我能够修复从浏览器中生成的HTML文件生成的PDF文件中的搜索功能。使用woff2字体无法进行搜索。 - John Malkoln

4

尝试下载至少这些网络字体变体:eot,woff,ttf,svg,然后您可以像这样使用它们以获得最大的跨浏览器效益:

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff') format('woff'), /* Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

请参考此答案以获取更多信息:链接

4
是的,这也是我关心的问题。我的目标是在所有操作之后拥有一个本地备用字体。然后我意识到,暂时直接使用谷歌字体其实已经足够好了(而且速度快、简单方便)。但还是谢谢你的建议 ;) - mowgli
1
此时,您只需要woff2和woff。不支持至少支持woff的浏览器要么根本不支持Web字体,要么是充满安全问题的非常旧的浏览器。 - Alice Wonder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接