18

我正在使用一些谷歌网络字体。我听说谷歌处理不同浏览器之间的所有问题,并根据请求标头中的浏览器提供不同的媒体。

我的问题是,它在什么时候做到这一点?

原因是对于 API,您可以简单地包含一个包含@font-face请求的 CSS 文件。我可以简单地将该 CSS 包含在我自己的 CSS 文件中,从而保存 HTTP 请求,还是该 CSS 会根据请求它的浏览器而改变?

我真的希望这是有道理的。

例如,Google 建议您在 CSS 文件中包含以下内容:

@import url(http://fonts.googleapis.com/css?family=Exo);

其中的内容是:

@font-face {
  font-family: 'Exo';
  font-style: normal;
  font-weight: 400;
  src: local('Exo Regular'), local('Exo-Regular'), url('http://themes.googleusercontent.com/static/fonts/exo/v1/ZcGd2dvMSgl3mHN3lKAjNw.woff') format('woff');
}
4

3 回答 3

26

Google Webfonts 提供的 CSS 会根据 HTTP 请求标头中的用户代理而变化,因此最好使用 @import。原因是不同浏览器中网络字体的不同实现。

于 2012-02-19T16:39:39.660 回答
8

不是您确切问题的答案,但即使目前可能,我也永远不会在本地缓存谷歌“实时”提供的任何 CSS,因为:

  • 即使它现在可以工作,但如果他们改变某些东西,它可能会在以后中断

  • 您没有添加任何可靠性,因为字体本身仍然必须从 Google 获取

  • 您并没有真正提高性能:如果一切配置正确,HTTP 请求将只发生一次,然后被缓存。此外,用户可能会从另一个使用 Google 字体的站点缓存字体 CSS。

于 2012-02-19T16:25:59.520 回答
1

如果您想存储本地 CSS,那么您也必须在本地存储字体,否则它将再次有额外的 HTTP 请求。

谷歌允许下载字体以供本地使用,但您也可以检查网络。 https://developers.google.com/webfonts/faq

于 2012-02-19T20:10:39.800 回答