我正在使用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;
时。
我是与众不同的形象。
没有任何资源的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/