我正在使用http://fonts.googleapis.com/css?family=Open+Sans中的Open Sans字体。由于安全原因,一些客户端使用封闭环境,因此我需要使用从npm安装的本地字体。

我已经尝试过从npm中为Open Sans,例如"open-sans-all": "^0.1.3""typeface-open-sans": "^0.0.54"使用多个软件包,但是具有相同CSS的字体与以前使用GoogleApis的字体进行渲染的方式不同,尤其是在应用font-weight: bold;时。

我是与众不同的形象。

css - 相同的CSS呈现不同的字体-LMLPHP

css - 相同的CSS呈现不同的字体-LMLPHP

没有任何资源的HTTP 404,所有字体和资源均已正确下载。

我不确定自己在做什么错,以便具有相同CSS的相同字体呈现不同的外观?

最佳答案

正如@RobC所提到的,它可能是浏览器的假粗体,因为npm中的Font中存在特定的粗体定义,而GoogleApi中则没有。

它很la脚,但客户端更喜欢旧版本,即从浏览器中获取虚假文件,因此需要从站点下载类似的woff2文件并在本地引用后引用:


打开http://fonts.googleapis.com/css?family=Open+Sans
它具有不同的字体,例如:

/* cyrillic-ext */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Open Sans Regular'), local('OpenSans-Regular'), url(http://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
} ...

下载url中本地提及的所有文件作为资源,如下所示:


http://fonts.gstatic.com/s/opensans/v15/mem8YaGs126MiZpBA-UFWJ0bbck.woff2


修改原始CSS以使用本地资源,例如:

@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: local('Open Sans Regular'), local('OpenSans-Regular'), url(ui/fonts/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2'); unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}


但再次需要为InternetExplorer添加额外的EOT文件,因为IE无法识别woff2,而chrome无法识别EOT

关于css - 相同的CSS呈现不同的字体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48947296/

10-11 20:08