Эта проблема действительно беспокоила меня некоторое время.
В Интернете (и в средах CSS, таких как Bootstrap) REM
обычно используется для всего, от отступов (пример: padding: 2rem;
) до радиуса границы (пример: border-radius: 1rem;
).
Ладно, это разумно. Но почему нет глобальной единицы, включающей модификатор line-height
? Предполагая, что вы используете типичную сетку, основанную на типографике, масштабирование вашего шрифта ПЛЮС ваш интерлиньяж является вашей истинной базовой линией, и, таким образом, кажется, что это НАМНОГО более важная единица, чем просто простой REM
.
Например, скажем, ваш REM
установлен на 16px, а ваш основной текст line-height
. 1.6
:
body {
font-size: 16px;
line-height: 1.6;
}
Это относительно распространенная конфигурация. Так почему же REM
(что обычно будет интерпретироваться как 16px
в этом примере) используется почти везде, а не единица измерения, представляющая фактическую базовую линию сетки (которая обычно будет 25.6px
или 16px * 1,6)?
Другими словами, почему эта стандартная практика
my-padding: {
padding: 2rem; // typically will be 32px;
}
но не это
my-padding: {
padding: 2rlh; // typically will be 51.2px;
}
(Я понимаю rlh
, что или root line height
не существует в CSS. Мой вопрос: почему его не существует?).
Причина этого в том, что он слишком специфичен, чтобы оправдать стоимость.
В вашем конкретном случае, когда вы хотите использовать root line-height
, ответ также заключается в том, что в большинстве случаев the line-height
основан на font-size
(это по умолчанию), поэтому это было бы бесполезно, поскольку у нас уже есть rem
.
В более общем смысле мы можем спросить себя: «Что, если я хочу использовать корень в качестве интервала для остальных полей и отступов? Почему для этого margin-top
нет единицы ?» rmt
и сделайте это для любого свойства. Мы быстро видим, что глупо иметь единицы для каждого свойства. em
и rem
были выбраны на основе , font-size
потому что это обеспечивает хорошую основу для других свойств, которые можно стилизовать.
При этом, если вы хотите использовать высоту строки (или любое другое значение) в значениях других свойств, вы можете использовать либо настраиваемые свойства CSS (по сути, переменные) , либо использовать препроцессор CSS, такой как SASS или LESS.
Кай
твой другзак
REM
высоты строки.Кай
line-height: 2rem;
thenpadding: 4rem;
так же, как делаетеpadding: 2rlh;
Цифровой свет
твой другзак
CSS
.твой другзак
EM
как кREM
. Если я хочу установить заполнение относительно родителяfont-size * line height
, для этого нет единицы, кроме жесткого кодирования значений.Кай
Кай
твой другзак
Йорик
DA01
DA01