首先是一些背景信息。
似乎在任何浏览器上,使用 CSS3 @font-face 规则都会与 ClearType 字体渲染以出人意料和不受欢迎的方式进行交互,并且在 Windows 的任何版本(包括 XP 及以上版本)中都会存在这种情况。
当我遇到这种情况时,我最初将其记录为Google Font Directory bug。进一步的研究似乎会产生冲突的信息;启用或禁用 ClearType 可以帮助或损害 @font-face 字体在 Windows 中任何 Web 浏览器中的呈现。无论 ClearType 是否有帮助或有害,似乎完全取决于所使用的字体以及其中内置了什么样的提示。
例如,TypeKit 支持网站上的一个主题似乎指向了启用 ClearType 时的字体呈现问题。但是,开发了一个 jQuery 插件 来改善启用 ClearType 时的字体呈现,但该插件仅适用于 Internet Explorer。有趣的是,在插件演示页面上使用的字体在启用 ClearType 时呈现不佳,但当其被禁用时,两个演示页面的呈现完全相同/正确。
因此,考虑到所有这些背景信息和以前的研究,我的问题是:
无论 Windows ClearType 设置如何,确保现代浏览器在所有平台上都具有良好的字体呈现的最佳方法/折衷方案是什么?
我的第一个想法是使用默认包含@font-face字体的样式表。JavaScript可以检测用户的操作系统,如果检测到Windows,则可以编程方式修改样式表类以使用不包括@font-face字体的字体系列,从而使用系统本地回退字体。后来我意识到有人也想到了这个。尽管这种方法很巧妙,但它并不优雅。理想情况下,我希望我的网络字体可以在任何平台上使用,而不依赖于像sIFR或Cufon这样的东西。
有人有指针或更好的想法吗?