首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google字体:语言选择不起作用

Google字体:语言选择不起作用
EN

Stack Overflow用户
提问于 2016-11-07 10:31:51
回答 1查看 3.4K关注 0票数 7

我正在相当多的客户网站上使用谷歌字体罗博托

当您在Google字体上自定义字体时,您有许多语言选项可供选择:

  • 希腊语(由Roboto支持)
  • 拉丁文扩展(由Roboto支持)
  • 西里尔(由罗博托支持)
  • 越南人(由Roboto支持)
  • Cyrillic扩展(由Roboto支持)
  • 希腊语扩展(由Roboto支持)
  • 拉丁文(所有字体都支持)

对于这些客户端站点,我只需要使用拉丁语,而不需要加载任何其他语言。

但是,当我以和定义的拉丁语加载这个字体时,您可以看到所有其他语言也被加载到生成的样式表中:

https://fonts.googleapis.com/css?family=Roboto:300&subset=latin

代码语言:javascript
复制
/* cyrillic-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/0eC6fl06luXEYWpBSJvXCBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+0460-052F, U+20B4, U+2DE0-2DFF, U+A640-A69F;
}
/* cyrillic */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/Fl4y0QdOxyyTHEGMXX8kcRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/-L14Jk06m6pUHB-5mXQQnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/I3S1wsgSg9YCurV6PUkTORJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/NYDWBdD4gIq26G5XYbHsFBJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+0102-0103, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/Pru33qjShpZSmG3z6VYwnRJtnKITppOI_IvcXXDNrsc.woff2) format('woff2');
  unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v15/Hgo13k-tfSpn0qi1SFdUfVtXRa8TVwTICgirnJhmVJw.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

我的理解是,定义&subset=latin只在该语言中加载,那么为什么这里加载了所有的语言?

EN

回答 1

Stack Overflow用户

发布于 2016-12-13 07:12:15

我正在复制这个答案达里尔·蒂奥,因为他似乎为您的问题提供了正确的答案。

诀窍在于这个优化: unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; 这样,浏览器就知道是否需要下载字体,这取决于它刚刚加载到html中的字符。

请看这里哪些浏览器有全力支持这一点

早期的浏览器,例如Firefox < 44和Safari < 10,忽略了规范的(部分),或者需要启用它,因此Google字体必须为它提供一个最小的字体规范。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40463014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档