在现有的代码中,我为.EOT嵌入字体做了CSS @font-face声明,实际上在internet explorer中可以完美地工作。所以现在我读到火狐在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字体。
其次,更令人不安的是以下行为:
在显示嵌入的ttf字体之前,Firefox会将默认字体闪烁半秒钟!
看起来真的真的很傻。
至于第二个问题,我希望可以解决的原因是,对于Cufon嵌入式字体,也存在完全相同的问题。但是,它们提供了在关闭</body>标记之前调用的Cufon.now() JS函数,这为它们解决了问题。SHould可能已经看过该函数的JS代码,但我几乎不是这方面的专家。
同样,同样的默认字体闪烁在IE或Safari中也不存在。
发布于 2009-09-14 10:55:42
如果您只在标题和少量文本中使用非标准字体,我建议您使用sIFR。这个小的JavaScript/Flash库的工作原理是用一个小的轻量级flash对象替换选定的元素,它可以在所有浏览器上显示相同的字体……您甚至可以选择sIFR生成的字体,就像选择网页上的任何其他文本一样。
看一看example page。
发布于 2009-09-14 12:28:35
对于斜体,您需要添加
@font-face {
font-family: ...;
src: url(...);
font-style: italic;
}https://stackoverflow.com/questions/1420796
复制相似问题