Вертикальный ритм стал ближе
Веб-вёрстка уже давно позволяет строить впечатляющие макеты, но именно мелкие детали, часто самые трудоёмкие, выводят дизайн на новый уровень. К счастью, современный CSS оброс небольшими, но мощными инструментами, делающими тонкую шлифовку несравненно проще. Один из таких инструментов — единица lh.
Что такое lh и rlh
С 2023 года все браузеры поддерживают две новые относительные единицы: lh и rlh.
1lh— высота одной строки текущего шрифта при заданномline-height.1rlh— то же, но относительно корневого элемента, какremпо отношению кem.
Привязывая размеры к строчному интервалу, легко настроить чистый вертикальный ритм. Возьмём самый распространённый пример — отступы абзацев:
p {
margin-block: 1lh;
}
Если наложить тонкую сетку с шагом в line-height, станет очевидно, что при 1lh каждый пустой интервал точно совпадает с шагом сетки, а при 1em, изображение слева, — чуть «съезжает». Такой сдвиг портит ритм и создаёт ощущение хаоса, особенно в длинном тексте.

Где работает lh
lh работает везде, где ждут числовое значение:
padding,gap,inset,height,width— любой размер можно синхронизировать с ритмом текста.- Комбинации
lh + chилиexоткрывают тонкую настройку как по вертикали, так и по горизонтали.
lh и rlh уже работают более чем в 94% актуальных браузеров. Для оставшихся достаточно простого fallback-а:
article {
padding: 1em; /* видят старые браузеры */
padding: 1lh; /* видят современные */
}
Старые движки рендерят привычные 1em, а новые ровные 1lh. Руками писать фолбэки не нужно. Отдайте эту работу роботам.
Как посмотреть на вертикальный ритм
Если есть желание визуализировать вертикальный ритм, можно использовать класс:
.horizontal-stripes {
background-image: repeating-linear-gradient(
rgba(0, 188, 212, 0.5) 0,
rgba(0, 188, 212, 0.5) 1px,
transparent 1px,
transparent 1rlh
);
}