Попробуйте адаптировать масштабируемую базовую сетку из системы золотой сетки: 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;
}
Чего я не могу понять, так это : почему высота строк уменьшается при увеличении размеров шрифта?
Я пытаюсь создать собственную базовую сетку, но я не могу экстраполировать уравнение, которое приводит к этому шаблону.
Очевидно, что размер шрифта является результатом классического
target ÷ context = result
Если вы сделаете эту математику для размера шрифта, это сработает например для h2:
26 пикселей ÷ 16 пикселей = 1,625em
но эта математика ломается для высот строк.
По-прежнему странно, почему высота строки для класса .small такая же, как и высота строки для .large, h1, h2 ... однако это меньше всего меня беспокоит.