简介
font-weight 是css中用来指定文字粗细的属性。
font-weight 的取值
font-weight 的值有两种,一种是数值 100 到 900 之间的整百,还有一种是描述性的单词分别有 normal 、 bold 、 lighter 以及 bolder。其默认值是 normal。
值得含义
- 数值 100 到 900 含义很明显就是对应着文字从细到粗的各个等级。
normal、bold是两个定量指定文字粗细的值,其中normal等价于400,bold等价于700。lighter与bolder这两个值稍微复杂一点,它们是一个相对的值,相对于父元素的字体粗细来计算当前字体的粗细,对应关系如下:
| 父元素值 | bloder | lighter |
|---|---|---|
| 100 | 400 | 100 |
| 200 | 400 | 100 |
| 300 | 400 | 100 |
| 400 | 700 | 100 |
| 500 | 700 | 100 |
| 600 | 900 | 400 |
| 700 | 900 | 400 |
| 800 | 900 | 700 |
| 900 | 900 | 700 |
字体匹配算法
当css中指定的字重数值在字体重没有对应字重时,就需要 字体匹配算法(font-matching-algorithm) 来解决这个问题。算法大概意思就是: 如果指定的font-weight数值,在字体中有对应的字重,那么就匹配为该对应的字重,否则就按照一定的规则来处理
规则如下:
- 字重小于400,先找小于400的,如果没有,就找大的,匹配最邻近的。
- 字重大于500,先找大于500的,如果没有,就找小的,匹配最邻近的。
- 字重等于400,先匹配500,如果没有,按照第一个小于400规则执行。
- 字重等于500,先匹配400,如果没有,按照第一个小于400规则执行。
以防表述不准确,原文如下:
‘font-weight’ is matched next, so it will always reduce the matching set to a single font face. If bolder/lighter relative weights are used, the effective weight is calculated based on the inherited weight value, as described in the definition of the ‘font-weight’ property. Given the desired weight and the weights of faces in the matching set after the steps above, if the desired weight is available that face matches. Otherwise, a weight is chosen using the rules below:
- If the desired weight is less than 400, weights below the desired weight are checked in descending order followed by weights above the desired weight in ascending order until a match is found.
- If the desired weight is greater than 500, weights above the desired weight are checked in ascending order followed by weights below the desired weight in descending order until a match is found.
- If the desired weight is 400, 500 is checked first and then the rule for desired weights less than 400 is used.
- If the desired weight is 500, 400 is checked first and then the rule for desired weights less than 400 is used.
总结
并没有,只是项目中遇到了,所以查了些资料记录一下。