1

我正在尝试使用我们在 Glyphs 中创建的自定义字体。它在某些情况下运行良好,在其他情况下完全不起作用。

我使用 FontSquirrel 从 Glyphs 导出的 otf 创建非 otf 字体文件(除非我使用 TypeFront,它为我创建/托管它们)。我创建的字符在 unicode 私人使用区域,特别是在这个范围内:http: //www.decodeunicode.org/en/private_use_area/5

这是有效的: * Firefox 和 Safari 中的字体 * Chrome 中的字体,如果我在 CSS 中包含 opentype 字体文件。

这是坏的:

  • 如果我在 CSS 中不包含 opentype 字体文件,则字体在 Chrome 中呈现为空白。
  • 在任何情况下,该字体都会在 IE8/9 中呈现空框。(没有检查旧版本。)

这是我尝试过但没有成功的方法:

  • 在本地托管字体。将它们托管在 TypeFront 上。

  • 最新最棒的防弹字体声明,由 FontSquirrel 和 TypeFront 提供。

前任:

@font-face {
    font-family: 'dojofore';
    src: url('ash/oah/css/dojofore-regular-webfont.eot');
    src: url('/ash/oah/css/dojofore-regular-webfont.eot?#iefix') format('embedded-opentype'),                  
         url('/ash/oah/css/dojofore-regular-webfont.ttf') format('truetype'),
         url('/ash/oah/css/dojofore-regular-webfont.woff') format('woff'),
         url('/ash/oah/css/dojofore-regular-webfont.svg#dojoforeRegular') format('svg');
    font-weight: normal;
    font-style: normal;
}
  • 仅使用上面的第一个 src 声明。而且只有第二个。而且只有第二行的第一行。

  • 更改 .htaccess 文件:

    AddType application/vnd.ms-fontobject .eot
    AddType font/ttf .ttf
    AddType font/otf .otf
    

我觉得我必须错过一些关键步骤,这些步骤将使上述内容在每个浏览器中都能完美运行。其他人已经做到了(FontAwesome 的字体在私人使用区)。谁能告诉我我做错了什么?

4

1 回答 1

1

解决了。

FontSquirrel 允许您“子集”您的字体。这样做似乎使 unicode 的私有区域的行为更加可预测。在这种情况下,这意味着给它一个 E400-E500 的范围。

于 2012-05-25T04:16:21.673 回答