谷歌网页字体在Chrome中看起来不稳定 - 如何应用修复程序

时间:2013-04-16 19:00:46

标签: css3 google-webfonts

这是一个普遍的问题,似乎有一个解决方案。 问题是网页字体在chrome中显示不连贯。解决方案应该是在.woff调用之前移动.svg调用。在此处说明:http://www.fontspring.com/blog/smoother-web-font-rendering-chrome和此处:http://www.adtrak.co.uk/blog/font-face-chrome-rendering/

问题是,我正在使用谷歌网络字体,并导入如下字体:

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

我不知道,也无法找到如何使用@font-face css标签而不是上述标签导入它。我试过了,但因为谷歌只提供ttf中的字体而不是svg或woff而卡住了。

希望你能提供帮助。

3 个答案:

答案 0 :(得分:2)

如果要应用此修复程序,则必须自己托管字体。

您的Google字体链接是对样式表的请求,该样式表可根据您提供的参数和浏览器检测动态构建。对于您的示例链接:

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

如果您使用curl实际提出请求:

$ curl http://fonts.googleapis.com/css?family=Asap:400,700,400italic,700italic

这是被发回的内容:

@font-face {
  font-family: 'Asap';
  font-style: normal;
  font-weight: 400;
  src: local('Asap'), local('Asap-Regular'), url(http://themes.googleusercontent.com/static/fonts/asap/v1/-KZsao_xwBpcExaHoPH8_w.ttf) format('truetype');
}
@font-face {
  font-family: 'Asap';
  font-style: normal;
  font-weight: 700;
  src: local('Asap Bold'), local('Asap-Bold'), url(http://themes.googleusercontent.com/static/fonts/asap/v1/5DVGWnz9Skaq1amwwwGZEw.ttf) format('truetype');
}
@font-face {
  font-family: 'Asap';
  font-style: italic;
  font-weight: 400;
  src: local('Asap Italic'), local('Asap-Italic'), url(http://themes.googleusercontent.com/static/fonts/asap/v1/8YIp-EIJXA6NJdTPxy9qiQ.ttf) format('truetype');
}
@font-face {
  font-family: 'Asap';
  font-style: italic;
  font-weight: 700;
  src: local('Asap Bold Italic'), local('Asap-BoldItalic'), url(http://themes.googleusercontent.com/static/fonts/asap/v1/_sVKdO-TLWvaH-ptGimJBaCWcynf_cDxXwCLxiixG1c.ttf) format('truetype');
}

最简单的方法是返回Google网络字体,通过转here并点击下载箭头下载相关字体。

然后您可以使用suggested fix from here,引用您下载的字体文件:

@font-face {
font-family: ‘MyWebFont’;
src: url(‘webfont.eot’); 
src: url(‘webfont.eot?#iefix’) format(‘embedded-opentype’),
    url(‘webfont.svg#svgFontName’) format(‘svg’),
    url(‘webfont.woff’) format(‘woff’),
    url(‘webfont.ttf’)  format(‘truetype’);
}

答案 1 :(得分:0)

您是否正确重置了所有款式?

您的不一致渲染体验可能是由浏览器默认设置引起的。

reset.css将所有元素设置回默认值,这样可以减少跨浏览器的不一致性。 reset.css有很多例子,其中最受欢迎的是meyerweb reset css。 减少不一致的另一种方法是使用normalize.css。

两种方法之间的区别在于,reset.css只是重置所有浏览器特定的样式,而normalize.css通过创建跨浏览器默认值具有更广泛的范围。

normalize.css的开发人员解释了here之间的差异。

如果所有这些链接都无法确保您始终将font-weight设置为right,则导入所有必需的字体权重。

您可以在此处阅读有关字体权重的信息:http://css-tricks.com/watch-your-font-weight/ 您还应该在使用normalize.ccs时应用此技术,因为它不会像rest.css那样重置font-weight。

答案 2 :(得分:-1)

将其添加到每个元素的样式表中。

opacity: .99;

例如 -

p, li { 
  opacity: .99; 
}

我不知道为什么会这样,但确实如此。