渲染良好的网络字体解决方案

2024-01-02

挑战:

提供动态网页字体,可在所有主要浏览器、设备和操作系统上呈现可接受的效果

故事:

所以我过去使用过 cufon 或 sifr,后来放弃了这两种方式,转而使用 @font-face。在生产中使用@font-face一段时间后,我有了一个可怕的发现。许多字体(大多数?)在 Windows XP 中看起来就像垃圾,无论浏览器如何。即使在 google chrome 中,XP 也会呈现令人无法接受的锯齿状和丑陋的字体。

我知道为什么会发生这种情况。在阅读了许多有关旧堆栈溢出的优秀文章后,我明白问题不是字体提示,而是 XP 将清除类型设置为默认关闭。因此,无论应用程序如何,默认情况下,XP 中的所有字体都是锯齿状的。

所以...如果@font-face在任何地方都可以很好地工作,但XP在清除类型关闭的情况下,并且仍然优于cufon,我们应该做什么?

可能的解决方案:

  • 默认为 @font-face,Cufon 具有针对 Windows XP 的用户代理嗅探功能。 (目前正在使用,但非常不喜欢它)
  • @font-face 单独使用尚未可知的强制清除类型的方法
  • 库丰一个人:(
  • 另一个范例

失败的解决方案:

  • Adobe Typekit(在他们自己的网站上 XP 中出现锯齿状!,尽管他们显示的是平滑的 jpeg 样本)
  • Google Webfonts(XP 也有同样的问题)
  • @font-face 单独(XP 也有同样的问题)

到目前为止,Cufon 可以在任何地方使用,但很糟糕,并且如果您正在制作任何动画或希望在事后更新文本,则会带来额外的挑战。

您是否有完全跨浏览器和跨操作系统的解决方案?处理这个问题的最佳方法是什么?


我很确定网页字体看起来很丑,缺少一些暗示(编辑:不,尽管仍然需要提示才能使字体在 Windows 上看起来不错,但这里真正的问题是 XP 中禁用的 ClearType。但是,这个答案无论如何都有一个解决方案).

与其他操作系统上的字体渲染器不同,Windows 引擎依赖于字体附带的提示信息。如果提示丢失、损坏或损坏,字体就会看起来很丑——就这么简单。幸运的是,有一种方法可以使用以下命令向 ttf 字体添加一些自动生成的提示ttf自动提示 http://www.freetype.org/ttfautohint/。添加提示后,您可以从增强的 TTF 生成所需的不同网络字体格式(eof、woff 等)。此外如果禁用字体平滑,您应该尝试使用 SVG 字体,因为它们总是使用抗锯齿进行渲染。

我写了一个关于如何在 Pixels|Bytes 上创建网络字体的文章 http://pixelsvsbytes.com/2013/11/how-to-create-perfect-web-fonts-in-3-steps/,它解释了如何向字体添加提示以及如何使用我的字体 Smoothie 脚本 https://gist.github.com/letorbi/5177771必要时启用 SVG 字体。希望这可以帮助 :)

PS:我知道这里不会赞赏链接到我自己的博客,但我认为我的帖子描述了问题的一个很好的解决方案,所以我还是发布了它。如果您希望我删除该链接,请发表评论,我会这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

渲染良好的网络字体解决方案 的相关文章

  • 如何让 Google 字体在 IE 中工作?

    我一直在开发一个使用谷歌字体 API https code google com apis webfonts 它很棒 据说已经在 IE 中进行了测试 但是在 IE 8 中测试时 字体根本没有样式化 我包括了谷歌的字体指示 http code
  • Ruby on Rails:如何在 Windows 上后台自动启动 WEBrick 服务器?

    为了在 Windows XP 上运行我的 Rails 应用程序 我打开命令行 cd 到应用程序的目录 然后运行rails server 我想自动化此操作 这样每次我打开计算机时 我所要做的就是输入localhost 3000在浏览器中 我怎
  • woff 和 ttf 字体 404 未找到

    我正在使用 webpack 来编译我的 sass 文件 我有一个font face看起来像这样 font face font family Alef src url public fonts Alef Alef Webfont Alef B
  • 安装过程中,Vista 上的各种文件类型在哪里

    在 Windows XP 上安装我的软件总是很容易 所有内容都在 c Program Files myprogram 目录中 这包括 可执行程序本身和任何 dll Readme txt 和 License txt 帮助文件 hlp 或 ch
  • 在 Windows XP 上安装 JDK8 - advapi32.dll 错误

    我下载了JDK8 https jdk8 java net download htmlbuild b121 并在尝试安装时出现以下错误 the procedure entry point RegDeleteKeyExA could not b
  • 在Python中处理大型密集矩阵

    基本上 在 python 中存储和使用密集矩阵的最佳方法是什么 我有一个项目 可以生成数组中每个项目之间的相似性度量 每个项目都是一个自定义类 并存储一个指向另一个类的指针和一个表示它与该类的 接近度 的数字 目前 它在处理约 8000 个
  • Windows XP 上 WPD/WIA 的替代品?

    WPD http www microsoft com whdc device wpd default mspx在 Windows XP SP1 如果重要的话 上无法正常工作 即使微软表示确实如此 http msdn microsoft co
  • Windows XP 中“附带”了什么 .NET 框架

    你能告诉我Windows XP系统上默认安装的 NET框架是什么吗 因为我想编写一个不需要安装任何其他东西的 C 应用程序 如果没有 有什么办法不强迫用户下载 net框架 例如3 5 而是安装它 Windows XP 没有附带任何版本的 N
  • Firefox 无法识别字体

    我正在设计样式pre通过 CSS 的 HTML 元素如下所示 pre font family Franklin Gothic Medium Arial Narrow Bold Arial sans serif 它可以在 Chrome Chr
  • 如何以编程方式检索“Program Files”文件夹的实际路径? [复制]

    这个问题在这里已经有答案了 可能的重复 C 如何在 Windows Vista 64 位上获取程序文件 x86 https stackoverflow com questions 194157 c sharp how to get prog
  • CSS Font-Face url 不起作用?

    我在使用 font face 选择器时遇到了一些问题 我有以下问题 font face font family MuseoSans 700 src url http mysite co uk clients reload Images st
  • @font-face 字体在 Mac 的 Safari 和 Chrome 中显示模糊

    I m using two special fonts on my website for headings and subtitles They are working fine on a PC in IE Firefox and Chr
  • 批处理文件删除目录中除指定列表之外的所有文件夹

    我正在寻找一个批处理文件 该文件将进入 C Documents and Settings 并删除除我想保留的几个文件夹之外的所有文件夹 这是一个破解方法 D 如果您在folders txt 中有一个文件夹路径列表 如下所示 C Docume
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 什么时候会发生内存泄漏?

    我不知道在这里该怎么想 我们有一个作为服务运行的组件 它在我的本地计算机上运行得很好 但在其他一些计算机上 两台计算机的 RAM 都等于 2GB 它开始在第二天和连续几天生成 bad alloc 异常 问题是该进程的内存使用量保持在大约 5
  • 当 MATLAB 变得非常非常忙时,如何中断它?

    我正在运行一个长时间的模拟MATLAB http en wikipedia org wiki MATLAB我意识到我需要停下来重新运行 然而 MATLAB 确实对这种计算很感兴趣 并且它停止了响应 如何在不终止 MATLAB 的情况下中断此
  • Google 字体(上面有空格)无法在 IE7/IE8 上呈现

    有谁知道为什么 IE7 IE8 不会渲染 Google 字体 如果名称上有空格 您可以在这里查看演示 http jsfiddle net fYzAb 1 http jsfiddle net fYzAb 1 完全相同的两个标签 一个使用 Os
  • 在 Windows XP 中,SqlCe 在受限用户帐户下打开缓慢

    我有一个使用 NET 4 0 构建的 Windows 应用程序 它的program files目录下有一个SqlCe数据库 C Program Files 公司名称 应用程序名称 Data Data sdf 该应用程序与 Inno Setu
  • 在 Windows 中删除大文件夹的最快方法是什么?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我想删除一个包含数千个文件和文件夹的文件夹 如果我使用 Windows 资源管理器删除该
  • Google 字体衬里数字

    我正在使用Raleway http www google com fonts specimen Raleway字体和谷歌字体的描述说 下载的内容既有旧风格 也有衬里数字 我找不到任何说明文件how到行数字 有谁知道我该怎么做 回答我自己的问

随机推荐

  • 从数据框中提取公式中的变量

    我有一个包含一些术语和一个数据框的公式 早期的输出model frame call 包含所有这些术语以及更多术语 我想要模型框架的子集仅包含公式中出现的变量 ff lt log Reaction log 1 Days x y fr lt d
  • Apple 应用商店:提交应用程序供审核但不发布?

    我可以将我的应用程序提交到应用程序商店进行审核 但在获得批准后仍不发布吗 我正在尽我所能来迎接发布 以确保我们不会因为苹果的应用商店政策而遇到任何严重的延误 这是我第一次这样做 我认为我的应用程序中没有任何内容可能会导致它被拒绝 我只是想让
  • 使用新的createbitmap方法时如何设置QR码的纠错级别

    这个问题参考API文档链接 http www blackberry com developers docs 7 0 0api net rim device api barcodelib BarcodeBitmap html http www
  • Firebase 云消息传递设备组泄漏

    我将开发一个使用设备组功能的应用程序 据我了解 我需要首先发送我在 Android 客户端上获得的当前注册令牌onTokenRefresh到服务器 然后通过 HTTP 请求将此注册令牌添加到适当的设备组 如果不存在则创建它 然而 我看到了泄
  • 无法识别 Mozilla Firefox 中的右键单击事件

    我正在尝试为右键单击事件添加一些行为 奇怪的是我根本无法使事件处理工作 这是 jQuery 代码 body on click wrapper null function ev if ev which 2 ev which 3 alert H
  • jQuery DataTables 插件 - 添加自定义选项选择过滤器

    有人知道如何向 jQuery 数据表添加自定义选项选择过滤器吗 基本上是这样的示例页面 http datatables net examples plug ins range filtering html但不是有最小 最大文本字段 将它们更
  • Facebook 是 OpenID 提供商吗?

    Facebook 是 OpenID 提供商吗 我知道他们是 OpenID 支持者 但他们是否允许人们使用其 Facebook 凭据通过 OpenID 向其他网站进行身份验证 不 他们不是 OpenId 提供商 他们使用自己的类似于 Open
  • 在 JavaFX 中,绑定是动作侦听器的替代方案吗?

    我想知道在 JavaFX 中 绑定是否可以替代动作侦听器 事件 我们可以用绑定而不是事件处理来处理所有操作吗 No binding http docs oracle com javafx 2 binding jfxpub binding h
  • 通过 SSL 使用我自己的 GIT 服务器设置 TeamCity

    我有自己的GIT服务器存储库 可以通过HTTPS协议连接 我正在尝试设置 TeamCity 以连接到我的 GIT 存储库 但由于 HTTPS 协议而无法连接 在 Eclipse 中 我有一个设置 sslVerify false 我可以连接到
  • 使用react和next.js时找不到fs模块的错误如何解决

    我正在使用没有路由器设置的反应应用程序 我想构建我的 sitemap xml 文件 我尝试了一些模块 如 sitemap js react router sitemap sitemap generator 但这些模块会抛出错误 因为 fs
  • 第二次初始化时 AKFFTTap 停止工作

    这是讨论的延续here https stackoverflow com questions 49705736 akffttap stops generating data after some time 我正在 Swift 中构建一个适用于
  • Java 和 JavaScript 本质同时存在

    我有一个更大的 Maven 多模块项目 其中涉及多种语言 现在安装了 Eclipse JDT 和 JSDT 代码着色工作正常 但 JavaScript 中的代码完成功能不太好 这使得工作效率变得困难 Eclipse 似乎在我的项目中找不到
  • WinRT 从视频流中提取帧

    我正在使用内置摄像头解码条形码 我使用capElement Source CapturePhotoToStreamAsync从预览中捕获照片 它可以工作 但会冻结应用程序一小会儿 这感觉非常笨拙和错误 因此 我希望在后台执行此操作 同时在处
  • DropDownList如何选择默认值

    我的页面上有很多 DropDownList class BigViewModel public List
  • Android TextInputLayout/EditText 不是全尺寸并截断文本

    我有一个包含计算器的片段 只有三个监听输入的 TextInputEditTexts 这些输入在相对布局中设置 如下所示
  • Node.js 与其他 Web 技术相比的优势 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • scikit learn 中的特殊性

    I need specificity对于我的分类 其定义为 TN TN FP 我正在编写一个自定义记分器函数 from sklearn metrics import make scorer def specificity loss func
  • libtool 与 ar 用于创建静态库(xcode 链接器)

    在 Mac 10 5 上使用 xcode 通过 libtool 创建静态库和通过命令行使用 ar 都会生成一个 libMainProject a 文件 但是 当尝试使用 libtool 生成的文件链接到 xcode 应用程序时 我最终会收到
  • 带星号的批量 FOR 循环

    我有这个单行 CMD 文件 TEST CMD for f in 1 2 3 4 5 6 7 8 DO ECHO f 如果我运行这个 TEST this is a test 它正确地在单独的行上回显每个参数 即 this is a test
  • 渲染良好的网络字体解决方案

    挑战 提供动态网页字体 可在所有主要浏览器 设备和操作系统上呈现可接受的效果 故事 所以我过去使用过 cufon 或 sifr 后来放弃了这两种方式 转而使用 font face 在生产中使用 font face一段时间后 我有了一个可怕的