Единицы размеров в CSS, отличия между REM, EM, PX и т.п.

В CSS размеры можно задавать с помощью разных единиц измерения: rem, em, px, % и другие. Разберём ключевые различия между rem, em и прочими.

EM — размер относительно размера шрифта родителя

2em внутри .child означает: в 2 раза больше font-size родителя. Внутри вложенных элементов em будет мультиплицироваться (компаундиться).

REM — размер относительно font-size корневого html

rem = root em. Не зависит от вложенности, только от html { font-size }.

Возникает закономерный вопрос — а можно ли использовать rem для самого контейнера html? Ответ — да.

И вот в чём нюанс: Когда вы задаёте rem для html {}, он обращаешься к самому себе. Поэтому rem в html {} будет зависеть от значения по умолчанию, заданного браузером (обычно 16px), если явно не переопределено раньше.

Другие единицы:

  • px — абсолютный пиксель (жёстко фиксирован, не масштабируется).
  • % — зависит от контекста (например, ширины родителя).
  • vw, vh — проценты от ширины/высоты окна браузера.
  • ch, ex — зависят от шрифта (ширина символа 0, высота x).

Когда использовать

Хочешь…Используй
Масштабируемый дизайн на всей страницеrem
Локальные размеры относительно font-size блокаem
Точный контроль, не зависящий от масштабаpx (осторожно)
Относительно размеров окнаvw / vh

Мало букафф? Читайте есчо !

Почему не работает стиль :: before или :: after?

Октябрь 22, 2017 г.

Замечательные псевдо-классы, которые позволяют добавить виртуальные контейнеры в начало или конец контейнера. Как они работают и почему могут "не сработать"? ...

Читать

Как запретить растягивание textarea

Февраль 27, 2017 г.

Тэг TextArea - незаменимое поле ввода для текста. Современные браузеры по-умолчанию позволяют пользователям изменять размеры, растягивать его за правый ...

Читать

Эффект размытия blur средствами CSS

Декабрь 23, 2015 г.

В интернете много решений, я попробовал, наверное, все :) Основная проблема - не удаётся достичь кросс-браузерности. Как всегда, отличился IE. Для ...

Читать

Верстка слоя-подкладки во всю ширину viewport

Апрель 16, 2019 г.

В лендинговой верстке дизайнеры часто прибегают к следующему приему - фон одного или нескольких блоков растягивается на всю ширину документа. При этом ...

Читать
 

Комментарии к «Единицы размеров в CSS, отличия между REM, EM, PX и т.п.»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: