Единицы размера CSS (px rem em vh)

Для типографики интерфейса выбирайте rem; px — только для тонких линий и пиксельной точности.

Обновлено:

ЕдиницаОтносительно чегоТипичное применение
pxПиксель устройства (CSS-пиксель)Границы, точные иконки
remРазмер шрифта корневого элементаТипографская шкала, отступы
emРазмер шрифта родителяЛокальные размеры компонента
%Свойство родителяШирины, гибкие макеты
vw1% ширины вьюпортаСекции во всю ширину
vh1% высоты вьюпортаВысота hero (учтите мобильный UI)
vmin / vmaxМеньшая/большая сторона вьюпортаПочти квадратные адаптивные размеры
chШирина символа «0»Блоки кода, моноширинные поля
exx-высота шрифтаРедкая тонкая типографика
svh / lvh / dvhМалый/большой/динамический вьюпортБезопасная высота мобильного браузера

Примечания

Частые вопросы

Чему равен 1rem в px?
1rem равен размеру шрифта корневого элемента; при значении по умолчанию 16 px это 16 px.
В чём разница между em и rem?
rem всегда отсчитывается от размера шрифта корня, а em — от унаследованного размера шрифта текущего элемента.
Почему 100vh работает неточно на мобильных?
Мобильные браузеры скрывают и показывают адресную строку, поэтому 100vh может превышать видимую область; используйте dvh или svh при поддержке.