2016-03-02 53 views
0

我使用的是检查元素 Firefox的功能可确定在某个元素上使用哪种字体系列。 在我的实际案例中,我只能找到在规则窗格中经过的字体族定义。我认为他们已经被另一个CSS规则覆盖了更高的位置。但是font-family没有定义在整个规则窗格中未被触动。 向上,最多一个节目,如:firefox inspector中的所有css字体系列定义都通过

.helvetica-neue-websave { 
    font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif 
} 

在另一方面,当我看着检查员我看到的字体窗格中的字体家庭对我的元素是Helvetica Neue字体简明大胆但我可以找不到,它在哪里定义。

编辑:计算窗格指出它使用HelveticaNeue,“Helvetica Neue字体”,黑体,宋体,宋体,无衬线,但它绝对是浓缩版。

所以,任何人都可以指导我如何找到这个字体家族定义的位置? 它不在HTML本身中,也不在我在规则窗格中看到的任何CSS文件中。 希望我的问题是明确和对不起我的英语

+0

很可能是你提到的字体在CSS中,浏览器/系统无法识别,并且在浏览器发生错误时,浏览器用尽可能最接近的匹配替换丢失的字体 – RRR

+0

有时候这可能是一种痛苦。在Chrome上,有一个“计算”选项卡,显示实际应用的规则。在你的情况下,它可能会被一些父元素覆盖,而不一定是元素本身,这就是为什么你可能看不到它在你的元素中设置。 –

+0

也FF有这个计算表标签,它表明使用“HelveticaNeue,'Helvetica Neue',Helvetica,Arial,Verdana,sans-serif”,但事实并非如此,因为它使用“浓缩”版本。所以必须定义“Helvetica Neue Condensed Bold”(因为它不是一个网络安全的我猜)? – Tom

回答

0

你看到FONT-FAMILY是“Helvetica Neue字体简明大胆”还是你看到用于FONT-FAMILY字体资源是“Helvetica Neue字体浓缩大胆“?因为这是两个完全不同的东西。听起来像后者,在这种情况下:CSS会根据提供的名称向浏览器询问“字体”。

  1. 浏览器检查它是否有任何明确的资源绑定(使用@ font-face),如果没有,它会要求操作系统输入与指定名称CSS匹配的字体。
  2. 如果操作系统找不到它们,CSS会回退到下一个字体并再次尝试。重复步骤1和2,直到资源耗尽。

在任何时候,浏览器或操作系统被允许去“是啊,我发现了一些”提供的名称的资源,他们知道比赛“不够好”,所以如果你问Helvetica Neue字体,以及OS两端被问到这一点,那么它可以去“哦,我在这里有一个Helvetica Neue”,然后给浏览器Helvetica Neue Condensed。这是100%可接受的:这是“Helvetica Neue”的许多合法匹配之一,因为这是实际的姓氏,而“Regular”,“Condensed”,“Thin”,“Oblique”等不是。

如果你不能接受开发,那么你的CSS需要变得更加精确:要么开始只接受'Helvetica Neue Regular',这是一个糟糕的计划,要么加载一个实际的字体,以便正确控制哪种字体会得到使用,没有操作系统得到咨询。特别是对于只有Mac用户才会安装的字体(unix,linux和windows用户都不需要:并且需要先购买它),并且在其他平台上也有保证。

创建@font-face规则与所需的字体,用font-familyContentFont(所以,如果你想有一个不同的字体后,所有你所要做的就是更换src结合,在不改变任何内容CSS),然后点那到真正的.woff字体资源(没有使用local()因为再次,不保证你会得到你要求的,它可能会解决“够好”,而对人眼来说绝对是错误的)

相关问题