1

在现有代码中,我在 Internet Explorer 中对 .EOT 嵌入式字体进行了 CSS @font-face 声明,这些字体实际上可以完美运行。所以现在我读到 Firefox 现在也在 3.5 中嵌入,除了它直接嵌入 .ttf 字体。所以我修改了 firefox 的 @font-face 声明并试了一下:

@font-face {
  font-family: FontX;
  src: url("FontX.eot");   //previous decl.
  src: local("FontX"), url("FontX.ttf") format("truetype");
}

它有效 - 但几乎没有完美无瑕。

首先,斜体和粗体不会出现在页面上,尽管它们以前使用 .EOT 字体出现过。

其次,更令人不安的是以下行为:

Firefox 在显示嵌入的 ttf 字体之前会闪烁默认字体半秒!

这看起来真的很蠢。

至于第二个问题,我希望可以解决的原因是,使用Cufon嵌入字体时,存在完全相同的问题。但是,它们提供了您在结束标记之前调用的 Cufon.now() JS 函数</body>,这为它们解决了问题。应该已经看过该函数的 JS 代码,但在这方面几乎不是专家。

同样的默认字体闪烁也不存在于 IE 或 Safari 中。

4

2 回答 2

0

如果您只在标题和少量文本中使用非标准字体,我建议使用sIFR。这个小的 JavaScript/Flash 库通过用一个小的轻量级 flash 对象替换选择元素来工作,它在所有浏览器中显示相同的字体...您甚至可以选择 sIFR 生成的字体,就像您在您的任何其他文本上一样网页。

看看示例页面

于 2009-09-14T10:55:41.840 回答
-2

对于斜体,您需要添加

@font-face {
  font-family: ...;
  src: url(...);
  font-style: italic;
}
于 2009-09-14T12:28:35.403 回答