如何让Open Sans Light在Chrome中运行?

时间:2016-02-11 13:24:04

标签: css google-chrome google-font-api

这是一个如何使用Google API的Open Sans的简单示例。 预期的行为是显示第一行(font-weight 300)而不是第二行。

就Windows而言,这适用于当前版本的FF和Edge,但不适用于Google Chrome。这样的浏览器显示两个段落具有相同的正常样式,而不是使用第一段的轻型段落。

<head>
    <meta charset="utf-8" />
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:300,400' rel='stylesheet' type='text/css'>
    <style>

    </style>
</head>


<body>
    <p style="font-family: 'Open Sans'; font-weight: 300;">Foobar</p>
    <br>
    <p style="font-family: 'Open Sans'; font-weight: 400;">Foobar</p>
</body>

更新

正如this question所示,问题是由于与本地安装的字体发生冲突。 事实上,请观察Google API中对“local”字体的调用:

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300;
  src: local('Open Sans Light'), local('OpenSans-Light'), url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTegdm0LZdjqr5-oayXSOefg.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;
}

简单地删除本地字体并不是真正的解决方案,因为:

  1. 如果它在那里,可能是因为某些程序需要它
  2. 要求网站用户删除其本地字体不是一种选择。
  3. 因此,问题仍然存在:

    如何在Chrome上(适用于任何用户)使用此功能?为什么其他浏览器会忽略本地字体来处理它?<​​/ strong>

1 个答案:

答案 0 :(得分:7)

为我解决这个问题的简单解决方法是从Google嵌入代码中复制CSS源代码,将其放在您自己的CSS中,然后只删除本地(...)源代码。

像这样:

@font-face {
   font-family: 'Open Sans Light';
   font-style: normal;
   font-weight: 300;
   src:url(https://fonts.gstatic.com/s/opensans/v13/DXI1ORHCpsQm3Vp6mXoaTRa1RVmPjeKy21_GQJaLlJI.woff) format('woff');
}

我在本地安装了字体,这种方法似乎适用于Chrome(以及Firefox,IE和Edge)。