CSS中字体粗细整数值的含义是什么?

时间:2013-07-14 13:35:19

标签: css fonts

在CSS中,可以将font-weight设置为normalboldbolderlighterinherit和平面整数值100-900。现在我的问题是:为什么有这样可能的整数值?为什么我们没有列出的属性字符串值以及谁有想法使用那些整数值以及为什么这些而不是来自1-9

2 个答案:

答案 0 :(得分:4)

关于标题中的问题:font-weight的整数值表示字体的不同可能字体权重,如果字体格式没有9字体权重,则可能需要重新解释它们。对于TrueType格式,该值是OS / 2表中分配给字体的值,项目为usWeightClass。

字体通常具有包含“常规”,“轻”,“重”,“粗体”等属性的名称。尽管CSS3字体在数字和名称之间描述“rough correspondence”,但这些字的使用会有所不同。

这些数字仅构成序数尺度;例如,对于具有重量100和200的字体,我们唯一可以说的是后者在前者中不轻。数字与“黑度”或字符笔划宽度之间的对应关系取决于字体。

根据定义,值normal等于400,根据定义,值bold等于700。这些只是CSS中可用的关键字,作为两个数字的替代。

bolderlighter相对于父级的字体粗细;它们分别将数值映射到更大或更小的值。所以它们不构成新的权重。

inherit表示要将属性的值设置为等于父元素的属性值。

因此,唯一的实际权重是从100到900的九个值。对于网页上常用的大多数字体,只有少数这些权重可用(通常只有400和700,或者可能只有400)。

关于“为什么有这样的可能整数值?”,9个权重的比例被认为是足够的 - 字体的权重不会超过这个。

关于“为什么我们没有列出的属性字符串值”,这些数字是中性的,可以独立于用于字体的命名方案使用。

关于“为什么这些而不是1-9”,比例100,200 ......允许引入中间权重 - 以防某些字体设计师有时想花时间设计超过9种字体。有点奇怪的编号方案可以在以后引入更精细的刻度。

答案 1 :(得分:2)

此命名法继承自TrueType字体。

引用Wikipedia

  

TrueType字体格式引入了从100到900的比例,其中400是常规(罗马或普通),也用于CSS和OpenType。 Donald Knuth可能在他的Metafont和TeX系统程序中对字体进行了第一次算法描述。

相关问题