这是一个使用Google API中的Open Sans字体的简单示例。
预期效果是第一行比第二行更轻(
就Windows而言,这在当前版本的FF和Edge上可以实现,但在Google Chrome上不行。这样的浏览器会显示两个段落都具有相同的正常样式,而不是对第一个段落使用轻样式。
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>
更新:
正如这个问题所述,问题是由于与本地安装的字体冲突导致的。
实际上,观察从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上使其工作(适用于任何用户)?为什么其他浏览器能够忽略本地字体而处理它?