这是一个如何使用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;
}
简单地删除本地字体并不是真正的解决方案,因为:
因此,问题仍然存在:
如何在Chrome上(适用于任何用户)使用此功能?为什么其他浏览器会忽略本地字体来处理它?</ strong>
答案 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)。