Google Webfont 与本地字体冲突

Posted

技术标签:

【中文标题】Google Webfont 与本地字体冲突【英文标题】:Google Webfont conflict with local font 【发布时间】:2012-08-21 04:41:58 【问题描述】:

我在使用 google-webfonts 时遇到了非常严重的冲突。 好的,代码如下:

这是在头脑中:

<link href='http://fonts.googleapis.com/css?family=Oswald:700' rel='stylesheet' type='text/css'>

这是在 css 文件中:

body 
font-family: 'Oswald', sans-serif;
font-weight: 700; 

"Oswald" 是一个包含 3 种字体的字体系列:

书 (300) 正常 (400) 粗体 (700)

如您所见.. 我只加载了粗体字 (700)。 (您可以在查询中看到它) 它一直有效,但是……

问题是:

我的计算机上安装了这 3 种字体 (300,400,700) 的桌面版本,只要这些字体被激活……浏览器就会在我的 html 文档中显示错误的字体粗细 (400)。

好的。问题是在我的 css 'Oswald' 中使用的是 localfont 而不是 webfont。但是本地字体“Oswald”是“Oswald normal”。我不知道为什么谷歌称它为“Oswald”而不是“Oswald Bold”。所以我不知道如何解决这个问题。

我不希望 css 指向本地字体 .. 我希望它始终显示 webfont ...因为正确的字体粗细!

你有什么想法吗? 请问?

可以重命名 webfont-call 吗?

【问题讨论】:

【参考方案1】:

您可以编辑 CSS @font-face 规则以满足您的需要,而不是仅仅从 Google 加载自动生成的规则。基本上问题是他们的规则更喜欢本地版本(src: local('Oswald Bold'), local('Oswald-Bold'), ...)。更正后的版本如下所示:

@font-face 
  font-family: 'WebOswald';
  font-style: normal;
  font-weight: 700;
  src: url(https://themes.googleusercontent.com/static/fonts/oswald/v5/bH7276GfdCjMjApa_dkG6T8E0i7KZn-EPnyo3HZu7kw.woff) format('woff');

只需手动将其添加到您的 CSS 中,并在您想使用 Google 的网络版字体时使用 font-family: 'WebOswald';

希望对你有所帮助!

【讨论】:

这个不错。我也想到了这一点,但问题是您的代码只加载 .woff 文件。另一件事是,当我在查询字符串上使用“&text =”参数时,我正在加载整个字体,而不仅仅是我需要的字符。所以我需要一个不使用本地字体的技巧或技巧。 @JohnDoeSmith 你的意思是你希望能够使用&amp;text= 参数但仍然忽略本地字体? 是的。而已。但我想出了一个适合我的解决方案。总而言之,你的答案是对的。所以你会得到 √ … thx ;) 这看起来是一个很好的答案,但这并不是因为它有一些相当严重的副作用。谷歌生成的 CSS 取决于使用的浏览器(或者更准确地说,发送的用户代理字符串),所以这样你就会神秘地失去对浏览器的支持...... 截至 2014 年,似乎每个现代浏览器都支持 WOFF。 caniuse.com/#search=woff Old IE (IE8-) 和 Opera Mini 是唯一不支持的。除非你需要支持 IE8- 或 Opera Mini,否则这个方案是完全可以接受的。

以上是关于Google Webfont 与本地字体冲突的主要内容,如果未能解决你的问题,请参考以下文章

任何人都可以将这两种字体用作 Webfont 吗?我几乎使用 webfont 生成器服务,但没有一个有效

导入和使用 google webfont

使用 font-spider 对 webfont 网页字体进行压缩

CSS无需Webfont实现近似「微软雅黑Light」的字体效果

如何在导入的 sass 文件中使用本地 webfont?

webfont 字体