【问题标题】:@font-face missing characters / glyphs in IE9@font-face 在 IE9 中缺少字符/字形
【发布时间】:2011-12-08 10:40:34
【问题描述】:

我在 IE9 上使用 @font-face 时遇到了一个奇怪的问题。我使用font-squirrel将我们想要的字体的TTF转换为WOFF、EOT和SVG

这看起来效果很好,我可以使用Paul Irish's @font-face CSS 让该类型在 Chrome/Safari 和 Firefox 上运行。问题是IE9。

在 IE9 中查看时,使用该字体的文本缺少字符。例如短语

The quick brown fox jumps over the lazy dog

显示为

 h   uick bro n fox ju p  o  r th  lazy do

我将每种字体设置为单独的@font-face 声明以进一步调查。 Chrome(例如)使用 WOFF、TTF 和 SVG 可以很好地呈现上述短语。奇怪的是,IE9 使用相同的缺失字符呈现 WOFF 和 TTF。但它不会加载 EOT。

有人知道原因可能是什么吗?任何帮助将不胜感激。

编辑 2011.19.12: 感谢大家的回答,我仍然没有找到解决这个问题的方法。碰巧的是,我们的一位设计师找到了他们想要使用的另一种字体,从而使问题变得不那么重要,但我仍然想深入了解这一点。

【问题讨论】:

  • 当您检查页面上的渲染源时,是否所有的字母都在 HTML 中,只是没有显示?还是它们没有很好地呈现为 HTML?
  • 它们都在渲染的源代码中。奇怪的是,例如,当我将句子复制并粘贴到记事本时,字符都在那里。

标签: internet-explorer-9 font-face


【解决方案1】:

对我来说,IE9 正确呈现格式的方式听起来有些问题,但其他浏览器......要么(a)字体类型的兼容性问题,要么(b)IE 可以转换的损坏不处理?我无法重现该症状,因此这可能不是真正的答案。

我会使用 squirrel 进行新的转换,并且可能会使用脚本来检测浏览器代理并在必要时加载最兼容 IE 的字体,然后是 Chrome/FF 和其他 webkit 浏览器的不错的字体。

如果这有帮助,请告诉我。

【讨论】:

  • 感谢您的回答,我已尝试再次转换字体但没有成功。在我得到这个排序之前,我使用<!--[if IE]><[endif]--> 条件标签来为 IE 显示一个普通的草书字体。
  • 我接受这个答案并奖励赏金。我最终使用了另一种字体,只能假设问题是只影响 IE 的字体损坏。我仍然不能确定,但​​这是最好的解释。
  • 谢谢利亚姆。很抱歉,我们无法为您找到更好的答案。我会将它添加到 IE 怪癖列表中。不过很高兴你能找到合适的工作。
  • @one.beat.consumer - 文件损坏是一个很好的猜测,它在我的情况下有效。 +1。
【解决方案2】:

尝试使用<!--[if IE9]><[endif]--> 条件标签来显示适用于 IE 的字体。

我会就这个问题与 Microsoft 联系,他们可能会提供修复或在 Windows Update 上推出一些修补程序或其他东西。

【讨论】:

  • 查看我对 one.beat.consumer 答案的评论 - 我已经这样做了。谢谢你的回答。
  • @liam 抱歉,我没看到。
【解决方案3】:

我遇到了这个确切的问题 - 通过 fontsquirrel.com 创建的两个网络字体在 IE9 中缺少字母,但在其他浏览器中没有。似乎 v9 是唯一一个为 webfonts 拾取 .woff 文件的 IE 版本,虽然其他浏览器使用我的很好,但 IE 没有。奇怪的是,我通过使用命令行工具 sfnt2woff 解决了这个问题,该工具将 .oft 和 .ttf 文件转换为 .woff 文件。我保留了 fontsquirrel 生成的所有其他 webfont 文件,但是用 sfnt2woff 的字体替换了两种损坏字体上的 .woffs,并且在 IE9 中一切正常。

【讨论】:

  • 有没有关于如何使用这个工具的文档?我解压了文件,不知道打开哪个文件
【解决方案4】:

尝试使用字母间距,这可能会有所帮助。

http://forums.mozillazine.org/viewtopic.php?f=9&t=2326571

【讨论】:

  • 非常有用的发现,但似乎是特定于 Firefox 的。尽管如此,我还是试了一下,但在 IE9 中我仍然缺少字符。
【解决方案5】:

我昨天刚刚在 IE9 上使用 fonts.com 的 webfont 时遇到了这个确切的问题。花了我们几个小时,但我们使用的 .eof 字体在 fonts.com 上不知何故损坏了。就我而言,我们是自行托管字体,而不是通过 JS。所以仔细检查字体。希望对您有所帮助。

【讨论】:

    【解决方案6】:

    今天使用 MyFonts 的 Cantoni 时遇到了这个问题。除 IE9 外,其他设备均显示良好。我在几个地方将它用于标题。每个标题上的前一个或两个字符都会消失。

    我唯一能够可靠地修复它的方法是在每个缺失字母的标题前添加一个 。不是很干净,也不太清楚它为什么起作用,但它对我有用。不幸的是,它需要我使用负文本缩进来将标题移回以使其正确对齐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2013-08-10
      • 1970-01-01
      相关资源
      最近更新 更多