首先是一些背景信息。
似乎使用 CSS3 @font-face 规则可以在任何浏览器、任何版本的 Windows(XP 及更高版本)上以意想不到的方式与 ClearType 字体呈现交互。
当我遇到它时,我首先将其记录为Google Font Directory 错误。进一步的研究似乎产生了相互矛盾的信息;启用或禁用 ClearType 可能有助于或损害 @font-face 字体在 Windows 中的任何 Web 浏览器中的呈现方式。ClearType 是帮助还是伤害似乎完全取决于所使用的字体,以及其中内置的提示类型。
例如,TypeKit 支持站点上的一个线程似乎指出当 ClearType 被禁用时出现字体渲染问题。但是,开发了一个jQuery 插件来改善 ClearType 启用时的字体呈现,但该插件仅适用于 Internet Explorer。有趣的是,插件演示页面上使用的字体在启用 ClearType 时渲染效果不佳,但在禁用它时,两个演示页面的渲染相同/正确。
因此,鉴于所有这些背景信息和先前的研究,我的问题是:
无论 Windows ClearType 设置如何,确保在所有平台上为现代浏览器提供良好字体渲染的最佳方式/妥协是什么?
我的第一个想法是使用默认包含 @font-face 字体的样式表。JavaScript 可以检测用户的操作系统,如果检测到 Windows,可以通过编程方式修改样式表类以使用不包含 @font-face 字体的字体系列,以便使用系统原生的后备字体。后来我意识到,其他人也想到了这一点。不过,这是一个笨拙且不雅的解决方案。理想情况下,我希望我的网络字体无论平台如何都可以使用,而不依赖于 sIFR 或 Cufon 之类的东西。
有没有人有指针或更好的想法?