在各种浏览器中,当使用特定字体时(例如 - Helvetica Neue),如果找不到该字体,则使用直系列中的第一个字体。因此,如果我要指定Arial Narrow是元素的基本字体样式而我的读者没有这种字体,它将转到系统可以找到的第一个可用的Arial字体。
作为练习,很多网站都喜欢Helvetica字体(特别是'Neue'和'Condensed'版本)。他们通常指定font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
相信浏览器将沿着这条特定路径行进,并且每个字体应该是美味的,第一个列出的是最美的。但是,Firefox / IE / Chrome(所以我假设webkit浏览器)都无法找到所需的特定Helvetica字体并直接转到他们在Helvetica系列中遇到的第一个字体。人们会认为这将是Helvetica,但在我的系统上它默认为Helvetica 95 Black。我甚至尝试重命名字体文件以查看是否是原因,并且无论文件名是什么,结果是页面默认为Helvetica Black。我发现这也是Arial的情况。
除了试图解释Helvetica,Arial,Verdana,Tahoma和无限的每一种风味之外,有没有办法强迫浏览器停止“猜测”家庭并只接受相关的确切字体?
答案 0 :(得分:1)
对于初学者,这里是CSS 2.1规范(或font matching algorithm中概述的CSS 3的描述,如果您愿意的话)。这是一个棘手的问题,正如算法细节概述之前的免责声明所证明的那样:
由于字体属性没有可接受的通用分类法,因此必须仔细地将属性与字体面匹配。这些属性以明确定义的顺序进行匹配,以确保此匹配过程的结果在UA中尽可能保持一致(假设每个字体面都显示相同的字体库)。
另请注意,根据section 15.3,您必须将包含空格的任何字体名称用单引号或双引号括起来。