Google Chrome中是否有“字体平滑”?
我使用谷歌网页字体,他们罚款超大字体大小,但在18px,他们看起来很糟糕。 我已经在这里和那里读到了有关字体平滑的解决方案,但我没有找到任何可以清楚解释的地方,我发现的几个片段根本不起作用。
我的h4
在几乎所有的浏览器中看起来都很糟糕,但Chrome是最糟糕的。 在Chrome中,几乎所有的字体看起来都很糟糕。
任何人都可以将我指向正确的方向吗? 也许你知道一个解释清楚的资源? 谢谢!
示例屏幕#1
该屏幕截图显示了https://www.dartlang.org/的主页,这是一种由Google制作的编程语言(因此我们可以暗示该网站也是由Google构建的)并使用Google Webfonts。
屏幕截图显示了左侧的Google Chrome浏览器,右侧的Firefox / Internet Explorer浏览器:
示例屏幕#2
该屏幕截图使用Typekit提供的网页字体显示Adobe.com上的产品信息页面。 Adobe和Typekit在字体方面是专业人士。
屏幕截图显示了右侧的Google Chrome浏览器,左侧的Firefox / Internet Explorer:
问题的状态,2014年6月:修复了Chrome 37
最后,Chrome团队将发布针对此问题的修补程序,Chrome 37将于2014年7月向公众发布。请参阅当前稳定版Chrome 35和最新Chrome 37(早期开发预览版)的示例比较:
问题的状态,2013年12月
1.)通过@import
, <link href=
或Google的webfont.js
加载字体时没有合适的解决方案。 问题在于,Chrome只是简单地请求来自Google API的.woff文件,这些文件可怕地渲染。 令人惊讶的是所有其他字体文件类型都呈现得非常漂亮 但是,有一些CSS技巧会使渲染字体“平滑”一些,您会在此答案中找到更深入的解决方法。
2.)当自承载字体时,有一个真正的解决方案,首先由Jaime Fernandez在此Stackoverflow页面上的另一个答案中发布,它通过以特殊顺序加载Web字体来解决此问题。 我只想复制他的优秀答案感觉不好,所以请在那里看看。 还有一个(未经验证的)解决方案,建议仅使用TTF / OTF字体,因为几乎所有浏览器都支持它们。
3.)Google Chrome开发人员团队就此问题开展工作。 由于渲染引擎有几处巨大的变化,显然有一些进展。
我已经写了一篇关于该问题的大型博客文章,请随时看一看:如何修复Google Chrome中难看的字体呈现
可重现的例子
在Chrome 29中查看今天最初问题的示例:
正面例子:
左:Firefox 23,右:Chrome 29
正面例子:
顶部:Firefox 23,底部:Chrome 29
负例:Chrome 30
负例:铬29
解
使用-webkit-text-stroke修复上述屏幕截图:
第一行是默认的,第二行有:
-webkit-text-stroke: 0.3px;
第三排有:
-webkit-text-stroke: 0.6px;
所以,修复这些字体的方法就是简单地给他们
-webkit-text-stroke: 0.Xpx;
或RGBa语法(nezroy,在评论中找到!谢谢!)
-webkit-text-stroke: 1px rgba(0,0,0,0.1)
还有一种过时的可能性 :给文本一个简单的(假的)阴影:
text-shadow: #fff 0px 1px 1px;
RGBa解决方案(可在Jasper Espejo的博客中找到):
text-shadow: 0 0 1px rgba(51,51,51,0.2);
我做了一篇关于此的博客文章:
如果您想要更新此问题,请查看相关博客文章:如何修复Google Chrome中难看的字体呈现。 如果有消息,我会发布消息。
我原来的答案是:
这是谷歌浏览器中的一个大错误,谷歌浏览器团队确实知道这一点,请看这里的官方错误报告。 目前,在2013年5月,即使在报告错误11个月之后,它仍未解决。 这是一个奇怪的事情,唯一使Google Webfonts混淆的浏览器是Google自己的浏览器Chrome(!)。 但是有一个简单的解决方法可以解决问题,请参阅下面的解决方案。
来自Google Chrome团队开发团队的声明,2013年5月
在bug报告中的官方声明评论:
我们的Windows字体渲染正在积极开展中。 ...我们希望在开发人员可以开始玩的一个或两个里程碑内有一些东西。 一如既往地,稳定的速度与我们能够根除和消除任何回归的速度有多快有关。
我遇到了同样的问题,我在Sam Goddard的这篇文章中找到了解决办法,
解决方案是如何定义对字体的调用两次 。 首先,建议您使用所有浏览器,并且在针对具有特殊媒体查询的Chrome进行特定通话后:
@font-face {
font-family: 'chunk-webfont';
src: url('../../includes/fonts/chunk-webfont.eot');
src: url('../../includes/fonts/chunk-webfont.eot?#iefix') format('eot'),
url('../../includes/fonts/chunk-webfont.woff') format('woff'),
url('../../includes/fonts/chunk-webfont.ttf') format('truetype'),
url('../../includes/fonts/chunk-webfont.svg') format('svg');
font-weight: normal;
font-style: normal;
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'chunk-webfont';
src: url('../../includes/fonts/chunk-webfont.svg') format('svg');
}
}
使用这种方法,字体将在所有浏览器中呈现良好效果。 我发现唯一的缺点是字体文件也被下载了两次。
您可以在我的页面中找到这篇文章的西班牙文版本
Chrome不会呈现像Firefox或任何其他浏览器那样的字体。 只有在Windows上运行Chrome时,这通常是个问题。 如果您想使字体平滑,请使用像这样的yer h4
标签上的-webkit-font-smoothing
属性。
h4 {
-webkit-font-smoothing: antialiased;
}
你也可以使用subpixel-antialiased
,这会给你不同类型的平滑(使文本有点模糊/阴影)。 但是,您需要每晚查看效果。 您可以在这里了解更多关于字体平滑的信息。