【问题标题】:Why is the default font weight 400?为什么默认字体粗细是 400?
【发布时间】:2020-03-02 13:52:57
【问题描述】:

所以,在使用字体时:

  • 默认(又名“常规”)字体粗细为 400
  • “粗体”字体粗细为 700
  • “轻”字重为 300

但是……为什么? 400 什么?这是一种单位吗?这背后有历史原因吗?

【问题讨论】:

  • 我发现这可能对你有帮助Open type specification它来自mdn
  • 我希望有人能在 POB 结束之前找到答案,
  • 没有light,CSS 规范曾经并且仍然只是正式定义了normalbold。有一个 bolderlighter,它们曾经用于相对于父规则向上/向下提升权重值,但这些在现代网络字体互联网上毫无意义。

标签: css fonts


【解决方案1】:

不是“400 what”,只是 400。根据 CSS 规范,首先在 https://www.w3.org/TR/CSS1/#font-weight 中正式化。字体粗细分为九级,以无单位数字表示,从 100 开始,到 900 结束,以 100 为增量。

除此之外,规范还定义了数值和字符串值之间的两种映射:

  • 数值400和字符串值normal是一回事,而且
  • 数值700和字符串值bold是一回事

(请注意,虽然 CSS4 将对此进行更改以允许数字 1-1000 以 1 为增量,但它仍将仅正式识别字符串值 normalbold,仍分别映射到 400 和 700。参见https://drafts.csswg.org/css-fonts-4/#font-weight-prop了解更多信息)

关于这些权重的唯一正式规则是,如果您在 CSS 上下文中使用字体系列,则 400/normal 的字体权重应该让您知道该字体系列的 Regular 字体是什么,以及700/bold 的字体粗细应该让您知道字体系列的 Bold 字体。其他任何内容都完全未定义,您所知道的是 100、200 和 300可能比 400、500 和 600可能介于常规和粗体之间,并且 800 和 900可能比 700 重。

所有这些都被限定为“可能”,因为@font-face 可以完全使有关此的所有内容无效。如果您使用@font-face,您否决 CSS 的规则对这些数值的全部含义。例如:当您将 font-weight 设置为 900 时,此规则将影响超细字体,因为这是我们告诉浏览器它必须执行的操作:

@font-face {
  font-family: MyFont;
  font-weight: 900;
  src: url("./fonts/ultra-thin.woff2") format("WOFF2");
}

同样重要的是要知道,这是仅有的两个官方数字/字符串映射。官方没有没有其他映射,https://drafts.csswg.org/css-fonts-3/#font-weight-prop中的数值表纯粹是为了说明真实 CSS值映射到哪个粗略 人们倾向于为他们使用的名字。

最重要的是,这适用于 CSS。它与实际的字体存储值或您在文字处理软件中看到的东西等无关。

【讨论】:

    猜你喜欢
    • 2023-02-15
    • 2013-12-26
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 2016-11-04
    • 2018-04-05
    • 2016-04-09
    • 1970-01-01
    相关资源
    最近更新 更多