首先是一些背景信息。
似乎使用CSS3 @ font-face规则可以在任何浏览器,任何版本的Windows(XP及更高版本)上使用ClearType字体renderv以意外和不受欢迎的方式进行交互。
当我遇到它时,我首先将其记录为Google Font Directory bug。进一步的研究似乎产生相互矛盾的信息;启用或禁用ClearType可以帮助或损害@ font-face字体在Windows中的任何Web浏览器中呈现的方式。 ClearType是帮助还是伤害似乎完全依赖于所使用的字体,以及它们内置了什么样的提示。
例如,thread on TypeKit's support site似乎指向ClearType为DISABLED时的字体渲染问题。但是,当{+ 3}}用于改进字体呈现时,ClearType为ENABLED,但该插件仅适用于Internet Explorer。有趣的是,插件的演示页面上使用的字体在启用ClearType时渲染效果不佳,但是当它被禁用时,两个演示页面的渲染方式相同/正确。
因此,鉴于所有背景信息和先前的研究,我的问题是:
无论Windows ClearType设置如何,在所有平台上为现代浏览器确保体面的字体呈现的最佳方法/妥协是什么?
我的第一个想法是默认使用包含@ font-face字体的样式表。 JavaScript可以检测用户的操作系统,如果检测到Windows,可以通过编程方式修改样式表类,以使用不包含@ font-face字体的字体系列,以便使用系统本机回退字体。我后来意识到其他人也想过jQuery plug-in。虽然这是一个hacky和不优雅的解决方案。理想情况下,我希望无论平台如何,我的网络字体都可以使用,而不依赖于像sIFR或Cufon这样的东西。
有没有人有指针或更好的想法?
答案 0 :(得分:3)
这是一个大问题,自2012年7月以来一直是谷歌Chrome中的官方错误。2013年8月,这似乎在大多数情况下得到修复。然而,仍然存在字体看起来前卫和像素化的例子。
给元素一个不错的文字笔画:
// try around, find the setting that fits your font-size
webkit-text-stroke: 0.6px;
// alternative RGBa syntax, allows finer settings with alpha-transparency
-webkit-text-stroke: 1px rgba(0, 0, 0, 0.1);
我写了一篇关于这个主题的大博客文章,包括很多截图和4个不同的解决方案来解决这个问题:看看这里:
答案 1 :(得分:2)
查看这篇文章的内容几乎相同:
IE7& 8字体平滑:http://allcreatives.net/2009/12/05/smoother-font-face-embedding-in-ie-7-8/
关于它的评论也有很多。我最近一直在寻找类似的支持,没有太多的快乐。我不得不在一个项目上使用Cufon,因为客户想要一个非常特殊的字体。有时,sIFR和Cufon是唯一的解决方案,但老实说,我会远离sIFR。
希望这有帮助。
答案 2 :(得分:2)
这里有一个类似的问题:Font-face embedded fonts look fuzzy in Windows 7 browsers得到的答案解决了我的同样问题。
fontsquirrel字体生成器http://www.fontsquirrel.com/fontface/generator优化字体并使用提示/呈现信息添加它们,以帮助Windows字体呈现引擎更好地呈现它们。它还会生成较小的文件,下载速度会更快。