Firefox 无法识别字体
Posted
技术标签:
【中文标题】Firefox 无法识别字体【英文标题】:Firefox not recognizing a font 【发布时间】:2012-08-06 08:44:17 【问题描述】:我正在通过 CSS 设置 pre
html 元素的样式,如下所示:
pre
font-family : "Franklin Gothic Medium","Arial Narrow Bold","Arial",sans-serif;
它在 Chrome/Chromium、Opera、Safari 和 IE 中有效(意味着该字体确实安装在计算机中),但在 Firefox 中无效。 Firefox 只识别Arial
。
而且我尝试过使用其他自定义字体(如Century Gothic
)并且它可以工作,因此它能够识别自定义字体。
底线,Firefox 无法识别 Franklin Gothic Medium
或 Arial Narrow Bold
,即使
这里可能发生了什么?
【问题讨论】:
这是 mozilla 的问题:bugzilla.mozilla.org/show_bug.cgi?id=644385 【参考方案1】:如果找不到解决方案,请使用 CSS3 字体路线。 http://www.w3schools.com/css/css3_fonts.asp
【讨论】:
【参考方案2】:解决方案并不简单。字体外观因浏览器、操作系统以及客户端系统上可用的字体而异。如果没有根据您的目标受众进行进一步测试,请不要轻信这个答案。
在 Windows 上,从 Firefox 4 和 IE9 开始,字体是使用 DirectWrite 而不是 GDI 呈现的。自此更改以来,“Arial Narrow”和“Arial Black”等字体被视为 Arial 系列的一部分,而不是独立的系列。因此,在 Firefox 中,您可以通过带有一些修饰符的常规 Arial 声明来访问 Arial Narrow。 IE9 以类似的方式工作,但似乎嵌入了一些实用技巧,使其以开发人员习惯的方式工作。
富兰克林哥特式媒体
font-family: "Franklin Gothic Medium", "Franklin Gothic", sans-serif;
除 Firefox 之外的所有浏览器都理解“Franklin Gothic Medium”。 Firefox 没有并继续选择下一个选择“Franklin Gothic”,您甚至可能认为自己没有,但这就是“Franklin Gothic Medium”在 DirectWrite 世界中的存在。 在没有任何其他修饰符的情况下(斜体、粗体、拉伸),当指定“Franklin Gothic”时,我的 Firefox 会抓取“Franklin Gothic Medium”。
Arial 窄粗体
font-family: "Arial Narrow Bold", "Arial Narrow", "Arial", sans-serif;
font-stretch: condensed;
font-weight: 700;
某些浏览器,例如 Chrome 和 IE7-8 可以识别“Arial Narrow Bold”。但是 IE9 和 Firefox 没有。 IE9 确实识别“Arial Narrow”。 Firefox 落入 Arial。 font-stretch: condensed
告诉 Firefox 使用 Arial 的“Arial Narrow”版本,font-weight: 700;
告诉 IE9 和 Firefox 使用“Arial Narrow Bold”版本据我所知。 600、700、800 和 900 的字体粗细对我来说触发了粗体。
带有 Arial Narrow Bold 后备的 Franklin Gothic Medium
现在您有了 Catch-22。
font-family: "Franklin Gothic Medium", "Franklin Gothic", "Arial Narrow Bold", "Arial Narrow", "Arial", sans-serif;
如果 Firefox 可以找到“Franklin Gothic”,那你很好,但如果不能,那么它会退回到“Arial”。如果使用font-stretch: condensed; font-weight: 700;
将其变为“Arial Narrow Bold”,则在不使用 Arial 后备时会影响 Franklin 的外观。如果 Franklin 可用,每个浏览器都会将 font-weight
规则应用于 Franklin——这根本不是你想要的。如果你使用font-stretch: condensed
并且 Firefox 可以访问 Franklin,它会尽职尽责地压缩它。 (我在任何其他浏览器中都没有看到。)在您的特定情况下,我会指望 Firefox 获得 Franklin 并接受将常规 Arial 用作后备。但是添加“Franklin Gothic”(适用于 FF)和“Arial Narrow”(适用于 IE9)会有很大帮助。
(在撰写本文时,Chrome 的版本为 21,Firefox 的版本为 14。)
【讨论】:
非常感谢您的回答@David。我很高兴我不必花费整个星期天(父亲节)来解决这个问题。 font-stretch: condensed 为我解决了问题,并选择了字体的窄变体,即 BC 39 3/1 Narrow 没有被 FF 渲染,而 IE 和 Chrome 则完全没有问题。以上是关于Firefox 无法识别字体的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2015 无法识别 OTF 转换字体 (UWP)