Единицы размера CSS (px rem em vh)
Для типографики интерфейса выбирайте rem; px — только для тонких линий и пиксельной точности.
| Единица | Относительно чего | Типичное применение |
|---|---|---|
| px | Пиксель устройства (CSS-пиксель) | Границы, точные иконки |
| rem | Размер шрифта корневого элемента | Типографская шкала, отступы |
| em | Размер шрифта родителя | Локальные размеры компонента |
| % | Свойство родителя | Ширины, гибкие макеты |
| vw | 1% ширины вьюпорта | Секции во всю ширину |
| vh | 1% высоты вьюпорта | Высота hero (учтите мобильный UI) |
| vmin / vmax | Меньшая/большая сторона вьюпорта | Почти квадратные адаптивные размеры |
| ch | Ширина символа «0» | Блоки кода, моноширинные поля |
| ex | x-высота шрифта | Редкая тонкая типографика |
| svh / lvh / dvh | Малый/большой/динамический вьюпорт | Безопасная высота мобильного браузера |
Примечания
- На мобильных 100vh может включать скрытую панель браузера — при поддержке предпочитайте dvh/svh.
- Пользовательский размер шрифта влияет на rem — для доступности это обычно хорошо.
Частые вопросы
- Чему равен 1rem в px?
- 1rem равен размеру шрифта корневого элемента; при значении по умолчанию 16 px это 16 px.
- В чём разница между em и rem?
- rem всегда отсчитывается от размера шрифта корня, а em — от унаследованного размера шрифта текущего элемента.
- Почему 100vh работает неточно на мобильных?
- Мобильные браузеры скрывают и показывают адресную строку, поэтому 100vh может превышать видимую область; используйте dvh или svh при поддержке.