CSS Baseline Grid - 为什么在字体大小变大的同时线高会变小?

时间:2012-02-12 15:39:35

标签: css grid typography em baseline

尝试从黄金网格系统调整可缩放的基线网格:https://github.com/jonikorpi/Golden-Grid-System/blob/master/GGS.css

这是相关的CSS(除非我遗漏了一些东西):

/*
*
*   Zoomable baseline grid
*   type size presets
*
*/
body {
  /* 16px / 24px */

  font-size: 1em;
  line-height: 1.5em;
}
.small {
  /* 13px / 18px */

  font-size: 0.8125em;
  line-height: 1.3846153846153846em;
}
.normal, h3 {
  /* 16px / 24px */

  font-size: 1em;
  line-height: 1.5em;
  /* 24 */

}
.large, h2, h1 {
  /* 26 / 36px */

  font-size: 1.625em;
  line-height: 1.3846153846153846em;
}
.huge {
  /* 42px / 48px */

  font-size: 2.625em;
  line-height: 1.1428571428571428em;
}
.massive {
  /* 68px / 72px */

  font-size: 4.25em;
  line-height: 1.0588235294117647em;
}
.gigantic {
  /* 110px / 120px */

  font-size: 6.875em;
  line-height: 1.0909090909090908em;
}

我无法弄清楚的是:为什么随着字体大小变大,行高会变小?

我正在尝试制作一个自己的基线网格,但我似乎无法推断导致这种模式的等式。

显然,经典

的字体大小结果
  

目标÷context =结果

如果你对字体大小进行数学计算,那就可以了。例如对于h2:

26px÷16px = 1.625em

但这个数字因行高而崩溃。

陌生人仍然是为什么.small类的行高与.large,h1,h2的行高相同...但是,这是我最不关心的问题。

1 个答案:

答案 0 :(得分:2)

通过辉煌的@jonkorpi(黄金网格系统的创造者):

“在计算行高时,上下文将成为该元素的字体大小。”

所以,例如,上面例子中h2背后的数学会像这样分解:

.large, h2, h1 {
    /* 
    target font size: 26px
    target line height: 36px

    font-size = 26 ÷ 16 x 1em
    line-height = 36 ÷ 26 x 1em
    */

    font-size: 1.625em;
    line-height: 1.3846153846153846em;
    }

或者,换句话说,计算行高可以使用以下等式:

目标行高÷元素的font-size =结果