我不明白字体粗细值。当我将其更改为粗体、正常或 600+ 时,也会更改字体。但是将其更改为 100 到 500,不会改变任何内容。为什么会有这些价值观?
4 回答
从 100 到 900的font-weight
值反映了设计不同粗细字体的排版实践。很少有字体具有所有这些权重,但已选择比例以或多或少地覆盖所使用的不同权重。CSS3 字体草案描述了数字和传统印刷术语(如 Thin、Extra Light 等)之间的对应关系,但术语确实有所不同。
在排版中,每个粗细都是由排版师设计的单独字体。这就是为什么大多数字体只有两种或可能只有一种粗细的原因之一:设计字体需要时间,而时间就是金钱。另一个特别适用于 Web 上使用的字体的原因是显示设备相当粗糙,使得精细的排版通常是一种毫无意义的尝试。特别是,小字体高度在低分辨率设备上效果不佳。
CSS 规范定义了一种将声明的字体权重映射到可用权重的算法。例如,当只有权重 400 和 700 可用(通常情况)时,权重 100、200 和 300 将映射到 400。
但是,在某些情况下,浏览器会在算法上使用粗体字形。这更像是一个问题而不是解决方案,并且由于浏览器的差异,如果您要求不存在的权重,可能会导致奇怪的事情。如果请求的字重为 600 或更大,并且字体只有正常 (400) 字体,则大多数浏览器似乎使用算法粗体。例如,设置font-weight: bold
文本何时使用 Arial Unicode MS(没有粗体字体)会创建一个人工加粗的 Arial Unicode MS 版本。
常用字体还有其他问题。有时您需要像使用字体名称一样使用字体名称,例如,font-family: Arial Black
而不是逻辑设置font-family: Arial; font-weight: 900
。有时这不起作用,因为在某些浏览器上只有逻辑方式有效。
作为一项规则,除非您使用可下载字体(网络字体) via ,否则不要尝试使用正常和粗体以外的其他粗细@font-face
,这样您就可以控制字体粗细问题。大多数可下载的字体仅包含两种基本粗细,或仅一种,但也有一些有趣的免费字体具有多种粗细。
font-weight 值改变字体的粗细。
通常仅限所有浏览器。
font-weight:bold;
好好工作。
100-500 font-weight 不加粗字体,因为它加粗字体的百分比小于 50%。
并且浏览器会自动将其更改为普通字体而不是粗体
font-weight
设置您希望浏览器呈现的字体的预期权重。通常,相同字体的不同粗细实际上是不同的字体(考虑Arial
与Arial Black
),浏览器甚至可能用不同的字体系列代替更粗的字体。浏览器也不需要具有所有可用权重的所有字体,因此某些font-family
/font-weight
组合可能没有任何效果。
浏览器和 CSS 不是排版系统。您不能保证完全按照您指定的方式呈现您请求的样式。如果您想更好地控制字体,请考虑使用@font-face
声明。
基本上,如果具有指定字体粗细的字体不存在,它将被最接近的可用字体粗细替换。这就是为什么您看不到任何变化的原因。
请注意,400 是正常的,700 是粗体,并且大多数网络字体没有比这更多的字体粗细。所以 95% 的时间,你可以坚持使用“粗体”和“正常”来指定 css 中的字体粗细。