当我在CSS中指定font-family
属性时,我可以指定特定字体,例如“Times New Roman”,或者我可以指定字体系列名称,例如“Times”。
在哪里定义“Times New Roman”是“Times”字体系列中的字体之一,还是字面上只是基于名称匹配?
答案 0 :(得分:0)
正如w3c指定
有两种类型的字体系列名称:
family-name - 字体系列的名称,例如" times"," courier"," arial"等。
generic-family - 泛型家族的名称,如" serif"," sans-serif"," cursive",&# 34;幻想"," monospace"。
所以是的,如果你想使用" Times"家人,你可以指定"时代"但如果你想在家庭中使用特定的字体,你必须输入字体的完整名称(如你所说,将与字体文件中包含的名称匹配)。
编辑: 一个实际的例子是Times Family,它包含多个字体。如果你没有指定任何(所以font-family:" Times"),那么"默认"将选择一个(我猜是正常体重的一个),否则如果你设置了font-family:" Times Semibold"将使用该特定字体。
编辑2:Source
- 用户代理制作(或访问)UA知道的所有字体的相关CSS 2.1属性的数据库。如果有两种字体具有完全相同的属性,则用户代理会选择其中一种。
- 在给定元素和该元素中的每个字符处,UA汇集适用于该元素的字体属性。使用完整的属性集,UA使用' font-family'属性选择暂定字体系列。根据每个属性描述的匹配标准对其余属性进行测试。如果所有剩余属性都匹配,那么这就是给定元素或字符的匹配字体。
- 如果' font-family'中没有匹配的字体。由第2步处理,如果有下一个替代品'font-family'在字体集中,然后使用下一个替代' font-family'重复步骤2。
- 如果有匹配的字体,但它不包含当前字符的字形,并且如果有下一个替代字体'字体系列'在字体集中,然后使用下一个替代' font-family'重复步骤2。
- 如果在2中选择的系列中没有字体,则使用UA相关的默认字体' font-family'并使用可在默认字体中获得的最佳匹配重复步骤2。如果使用该字体无法显示特定字符,则UA可以使用其他方法来确定该字符的合适字体。 UA应该将没有合适字体的每个字符映射到UA选择的可见符号,最好是缺少字符"来自UA可用字体之一的字形。
醇>