@ font-face正在Firefox中删除字母

时间:2011-10-17 19:50:12

标签: css firefox css3 font-face

我让Museo-300主要使用@ font-face,但某些字母组合如“ff”和“fi”在Firefox中消失(在v3.6和v7.0.1中确认)。所以“小额信贷”变成了“微量”。

请注意,我将这些输出为单个字母,而不是连字。当我在服务器和浏览器上查看源时,例如“coffee”拼写为所有六个字母 - 而不是“ff”的unicode连字符。

在Opera,Chrome,Safari和IE(甚至是IE6)中输出正确。

我从MyFonts下载了Museo-300及其网络字体示例模板。

 @font-face {
 font-family: 'Museo-300';
 src: url('webfonts/151B6C_0.eot');
 src: url('webfonts/151B6C_0.eot?#iefix') format('embedded-opentype'),url('webfonts/151B6C_0.woff') format('woff'),url('webfonts/151B6C_0.ttf') format('truetype'),url('webfonts/151B6C_0.svg#wf') format('svg');
}

并且所有引用的文件都已到位。我这样调用它:

    font-family: 'Museo-300', sans-serif;

我尝试了一种不同的字体作为测试(Code Pro Light Demo,也来自MyFonts),Firefox下载了“fi”而不是“ff”。

知道出了什么问题?

4 个答案:

答案 0 :(得分:8)

对于将来阅读本文的人,请注意,从FF 15开始(我认为)语法现在已经改变了,你需要使用它:

-moz-font-feature-settings: "liga=0";
-moz-font-feature-settings: "liga" 0;

答案 1 :(得分:5)

您可以告诉Firefox跳过查找连字并通过添加将它们视为常规字符 在你的font-face声明中-moz-font-feature-settings: "liga=0"

答案 2 :(得分:1)

如果其他人遇到此问题,我在MyFonts技术支持的帮助下解决了这个问题。我不确定这个问题是否特定于MyFonts,但我怀疑它会影响其他网络字体来源。

直接(可解决)原因

当标准True Type字体(TTF)被处理成对Web字体(EOT,SVG,WOFF)有用的多个版本时,处理工具或供应商可以决定是否包含字体的完整字符集。有些将默认为减少字符集以减小文件大小。

就我而言,一个或多个生成的网络字体文件排除了连字,大概认为它们是非必要的排版调整。为了解决这个问题,我在MyFonts上使用了一个自定义Web字体构建器来生成具有完整字符集的字体文件。

(对于MyFonts,特别是订单历史记录>选择相关字体> Webfont Kit Builder选项卡>高级,然后检查“完整字符集”和“保留OpenType布局”。)

潜在原因

我的信念,这只是一个有根据的猜测:

我认为Firefox比其他浏览器更能做出漂亮的排版。因此,当它看到它可以呈现为ligature(“fi”,“fl”,“ff”等)的东西时,它会尝试将字母渲染为单个连字字形而不是两个不同的字符。如果您的网络字体不包含连字字形,则您的字母将消失。 (如果我的猜测是对的,我很惊讶我之前没有读过这个问题。)

答案 3 :(得分:1)

Myfonts.com最近更改了一些显示设置。他们的支持很快回复了以下信息:

  

如果单击字体图像(显示样本的图像),   它位于套件选项的正上方,您将看到完整版   字符集和Keep OpenType Layout选项。

此视图目前无法通过Firefox获得,但我可以使用IE9下载完整的字符集。