CSS字体加粗属性font-weight⼯作原理
允许值  normal | bold | bolder | lighter | l00 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900
font-weight初始值  normal
可否继承是
font-weight适⽤于所有元素
为理解⽤户代理怎样决定,得先从关键字100到900谈起,然后我们再来看它是如何继承的。
这些数字关键字⽤于定义与字体的相关特征的映射关系,即字体的粗细被分成九个等级。例如,OpenType就使⽤了九个值的数字级。字体有了这级别之后,这些数字就直接映射到各个级,如100映射到最轻的字体变形,⽽900对应最重的字体变形。
事实上,在这些数字中并不存在本质的字体粗细的约定。CSS指出,每个数字对应的字体粗细不得⼩于它前⾯的数字所对应的字体粗细。这样,100,200,300和400或许都对应同样粗细的字体变形,⽽500和600可能对应到⼀个更粗的字体变形,700,800和900则对应下另⼀种更粗的字体变形。
这数字被定义为同某些普通的,⽽700对应于bold。
字体变形名等价。400等价丁normalfontweight属性bold
其他数字不对应任何
font-weight属性的关键字,但它们可以对应于普通的字体变形名。如果某种字体变形标记为“Normal”、“Regular”、“Roman”或“Book”,那么它便被分配给400,⽽且任何标记为“Medium”的字体变形就对应于500。
然⽽,如果标记为“Medium”的字体变形是唯⼀可⽤的字体,那么它就不能同500相对应。
如果在某个给定的字体系列⾥少于九个字体粗细级,则⽤户代理需要做更多的⼯作。在这种情况下,它必须⽤⼀种预先定义的⽅式来填充其间的空隙:
如果值500未分配,它就被赋予同400⼀样的
字体粗细。
如果300未分配,它就同⽐400稍轻的字体变形对应。如果没有更轻的字体可⽤,300就同400⼀样对应于某个级。这通常是
在“Normal”和“Medium”情况下。同样的⽅法⽤于100和200。
如果600未分配,它便同⽐400稍重的字体变形对应。如果没有这样的字体可⽤,600就同500⼀样对应于某种字体变形。这种⽅法也⽤于700,800和900。
为了便于理解,让我们来看三个
字体粗细分配的例⼦,⾸先假设字体系列Karrank%是OpenType字体,⽽且已经定义了9个相应的粗细级。
在这⾥,这些数字分别对应于各个级,⽽关键字normal和bold各⾃分配给400和700。在第⼆个例⼦⾥,我们考虑字体系列Zurich,它在本内容的开始提到过。假设其字体变形也被分配了下⾯的粗细值。
字体形式:Zurich Light  分配的关键字:空分配的数字:100,200,300
字体形式:Zurich Regular  分配的关键字:normal  分配的数字:400
字体形式:Zurich Medium  分配的关键字:空分配的数字:500
字体形式:Zurich Bold  分配的关键字:bold  分配的数字:600,700
字体形式:Zurich Black  分配的关键字:空分配的数字:800
字体形式:Zurich UltraBlack  分配的关键字:空分配的数字:900
头三个数字分配给最轻的字体。普通字体对应关键字400和normal。
Medium字体分配给数字500。没有字体变形分配给600,因此将600和700⼀起对应于同⼀字体变形Bold字体。最后800和900分别分配给Black和UltraBlack
字体变形。
也只有当最上⾯的两个粗细级已经分配后,才会出现这样的情况。
否则⽤户代理可能会忽略它们,并且将800和900分配给Bold字体,或者将它们分配给两个Black字体变形之⼀。最后,让我们来看看Times宇体,它只有两种字体变形,TimesRegulal和TimesBold,如下所⽰。
字体形式:TimesRegular  分配的关键字:normal  分配的数字:100,200,300,400,500
字体形式:TimesBold  分配的关键字:bold  分配的数字:600,700,800,900
关键宇normal和bold的分配相当直接。对于这些数字,100到300分配给Regular字体,但500怎么办呢?它被分配给Regular字体了,因为没有Medium字体;这样它就同400⼀样了。
余下的,700总是分配给bold字体,⽽800和900,由于缺乏更粗的字体,也分配给Bold字体。最后,600被分配给下⼀个
更粗的字体,当然,也只有bold字体了。
字体粗细可被继承,如果将段落设置为bold,则所有的⼦元素都会继承粗体,如下:
< {
font-weight:bold; }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。