Все единицы измерения в CSS от лучших к худшим
- 30 мая 2025
CSS использует разные единицы измерения для задания размеров, отступов, шрифтов и других свойств. Разделяют абсолютные и относительные единицы. Понимание различий между ними — фундаментальная основа адаптивной, масштабируемой и удобной в поддержке вёрстки.
Абсолютные:
px
— пикселиcm
— сантиметрыmm
— миллиметрыin
— дюймыpt
— типографские пунктыpc
— пика
Относительные:
z%
— процент от родителяem
— от размера шрифта родителяrem
— от размера шрифта корняvw
— 1% от ширины вьюпортаvh
— 1% от высоты вьюпортаvmin
/vmax
— минимальное/максимальное из vw и vhfr
— доля пространства в грид-сеткеch
— ширина символа «0»ex
— высота строчной буквы «x»
Примеры ниже снабжены пояснениями из практики, с фокусом на применение в реальных проектах.

px — пиксели
Тип: абсолютная
Поддержка: везде
Применение: повсеместно
body {
font-size: 16px;
margin: 20px;
}
Когда использовать: Пиксели подходят для точных размеров, таких как иконки, кнопки и UI-элементы. Часто применяются как базовая единица, особенно на макетах.
Когда избегать: Не стоит использовать для шрифтов — это мешает доступности. Также нежелательны в адаптивной вёрстке: не масштабируются под размер экрана.
Совет: Используйте умеренно, для точных деталей.
% — проценты
Тип: относительная
Применение: ширина, отступы, шрифты (редко)
.container {
width: 80%;
}
Когда использовать: Идеальны для ширины элементов, особенно вложенных блоков, которым нужно наследовать размеры от родителя.
Когда избегать: В высоте могут вести себя непредсказуемо, если родитель не имеет заданной высоты.
Совет: Отлично работает для ширины, особенно в гибких макетах.
rem — относительная к корневому шрифту
Тип: относительная
Применение: шрифты, отступы, размеры, ширина контейнеров
html {
font-size: 16px;
}
h1 {
font-size: 2rem; /* 32px */
}
Когда использовать: Хорош для масштабируемых интерфейсов: одно изменение font-size в масштабирует всё остальное.
Когда избегать: Почти не бывает причин избегать — универсален и удобен.
Совет: Рекомендуется как основная единица для всех размеров.
em — относительная к родительскому шрифту
Тип: относительная
Применение: шрифты, отступы, вложенные компоненты
button {
font-size: 1em;
padding: 0.5em 1em;
}
Когда использовать: Удобен внутри компонентов, где размеры зависят от родителя. Хорош для внутренних отступов.
Когда избегать: В каскаде может дать неожиданный результат, если вложенность сложная.
Совет: Используйте для компонентов, особенно при оформлении кнопок и карточек.
vw / vh — проценты от вьюпорта
Тип: относительная
1vw
= 1% от ширины окна1vh
= 1% от высоты окна
.hero {
height: 100vh;
font-size: 5vw;
}
Когда использовать: Отличны для полноэкранных секций, динамичных заголовков и блоков, завязанных на размер экрана.
Когда избегать: На мобильных могут вести себя нестабильно — адресная строка влияет на размер окна.
Совет: Используйте с осторожностью, особенно vh
на iOS — лучше lvh
или JS-хаки.
fr — единица фракции в grid
Тип: относительная
Применение: grid-template-columns
, grid-template-rows
.grid {
display: grid;
grid-template-columns: 1fr 2fr;
}
Когда использовать: Лучший выбор для гибких макетов на Grid. Позволяет легко делить пространство.
Когда избегать: Почти нет причин избегать — универсальна в пределах грида.
Совет: По умолчанию выбирайте fr
в грид-сетках.
ch — ширина «0» символа
Тип: относительная
Применение: ширина полей ввода, консольных блоков
input {
width: 30ch;
}
Когда использовать: Идеален для полей форм, особенно когда нужна ширина по количеству символов.
Когда избегать: Не годится, если используется не моноширинный шрифт.
Совет: Удобен в <input>
и <textarea>
.
ex — высота строчной буквы x
Тип: относительная
Редкость: крайне редко используется
p {
line-height: 2ex;
}
Когда использовать: Почти никогда — очень специфична, зависит от шрифта.
Когда избегать: Лучше избегать всегда, если нет веских причин.
cm, mm, in — сантиметры, миллиметры, дюймы
Тип: абсолютные
Применение: печатные стили (@media print
)
@media print {
body {
width: 21cm;
}
}
Когда использовать: Только в печатной вёрстке.
Когда избегать: Не для экранной вёрстки — нет смысла.
pt / pc — типографские пункты
Применение: аналогично cm/mm — только в печати.
ic — ширина идеографического символа
Тип: относительная
Происходит от: ideographic character
Применение: вёрстка на CJK-языках (китайский, японский, корейский)
input {
width: 10ic;
}
Когда использовать:ic
подходит для интерфейсов на языках с идеографическим письмом. Например, чтобы задать ширину поля ввода, в которое должно помещаться ровно 10 иероглифов, используйте width: 10ic
. Эта единица учитывает ширину текущего шрифта и делает вёрстку более естественной для азиатских пользователей.
Когда избегать:
В интерфейсах на кириллице или латинице ic
не даёт ожидаемых результатов. Поведение может быть непредсказуемым, особенно если используется неидеографический шрифт или смешанные символы.
Совет: Отлично работает в сочетании с CJK-шрифтами и интерфейсами на восточноазиатских языках. Для остальных случаев предпочтительнее ch
.
Итоговая таблица применения
Единица | Тип | Применение | Стоит использовать? |
---|---|---|---|
px | абсолютная | UI, точные отступы | Да, но с осторожностью |
% | относительная | ширина, вложенность | Да |
rem | относительная | масштабируемые размеры, особенно шрифт | Да |
em | относительная | компоненты, отступы | Да, с учётом контекста |
vw/vh | относительная | hero-блоки, fullscreen | Да, но проверять в мобилках |
fr | относительная | Grid layout | Да, без ограничений |
ch | относительная | формы, поля ввода | Да |
ex | относительная | спецкейсы | Нет |
cm/mm/in | абсолютная | печать | Да, только для print |
pt/pc | абсолютная | печать | Да, только для print |
Если вы новичок — начните с rem
, %
, px
и fr
. Постепенно подключайте em
и vw/vh
, когда поймёте поведение и каскад.
Хорошая практика:
- Шрифты —
rem
- Внутренние отступы —
em
- Сетки —
fr
- Размеры контейнеров —
%
илиvw
- Точные размеры —
px
Грамотное сочетание единиц делает вашу вёрстку гибкой, адаптивной и масштабируемой.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Читать дальше

CSS-селекторы. Шпаргалка для новичков
Селекторы — это шаблоны, которые используются для привязки стилевых свойств к элементам в документе. Вы можете задать стиль для всех элементов или сократить выбор с помощью определённого селектора.
- 8 августа 2025

Всё самое важное о псевдоклассе :default
Псевдокласс :default
— это способ стилизации элемента формы, выбранного по умолчанию. Он особенно полезен при работе с группами радиокнопок, чекбоксов или выпадающих списков, где важно визуально выделить стартовый (предустановленный) вариант. Такой подход делает интерфейс понятнее и помогает пользователю быстрее ориентироваться в выборе.
Доступно в Baseline в статусе «Widely Available» с 2022-07-15
- 4 августа 2025

Как работает единица измерения em в CSS
Единица em
используется в CSS для задания относительных размеров, которые зависят от шрифта родительского или текущего элемента. Это делает верстку гибкой и адаптивной: если пользователь увеличит базовый размер текста, элементы тоже изменятся.
Доступно в Baseline в статусе «Widely Available» с 2018-01-29
- 30 июля 2025

Как найти пустые элементы в CSS
Псевдокласс :empty
помогает находить пустые HTML-элементы, чтобы применять к ним стили или скрывать их. Это удобно для автоматической очистки интерфейса и улучшения UX без дополнительных классов или JavaScript.
- 29 июля 2025

Как работает ::first-line — оформление первой строки текста в CSS
Псевдоэлемент ::first-line
позволяет задать особое оформление только для первой строки текста внутри элемента. Это полезно, когда нужно визуально выделить начало абзаца — например, сделать первую строку жирной, изменить цвет или стиль шрифта. Такой приём часто используют в типографике и веб-дизайне, чтобы направить внимание читателя.
Этот псевдоэлемент находится в Baseline в статусе «Widely Available» с 2018-01-29
Как использовать: first-line
🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.
Псевдоэлемент добавляется к селектору через ::
, и внутри блока задаются стили, которые применятся только к первой строке, как она отображается в браузере:
p::first-line {
font-weight: bold;
color: red;
}
Этот стиль сделает только первую строку текста в каждом абзаце <p>
красной и жирной. Важно: то, где заканчивается строка, зависит от ширины контейнера и размера шрифта, а не от переносов в HTML.
Какие свойства работают
Псевдоэлемент ::first-line
не поддерживает любые стили. Он ограничен только теми, что могут визуально применяться к строке текста:
Поддерживаются:
color
font
и его производные (font-size
,font-weight
,font-style
,font-variant
)letter-spacing
,word-spacing
line-height
text-decoration
text-transform
vertical-align
background
margin-left
иmargin-right
padding-left
иpadding-right
border-left
иborder-right
Не поддерживаются:
display
,position
,transform
,width
,height
и другие «структурные» свойства.
Это сделано, чтобы не нарушать верстку и избежать проблем с потоком документа.
Пример с цитатой
<blockquote>
Когда вы начнёте, главное — не останавливаться.
</blockquote>
blockquote::first-line {
text-transform: uppercase;
letter-spacing: 2px;
}
Здесь первая строка цитаты будет написана ПРОПИСНЫМИ буквами с увеличенным расстоянием между символами. Это создаёт акцент и улучшает читаемость начала мысли.
Советы по использованию
- Используйте
::first-line
для декоративных акцентов: начало статьи, цитаты, описание карточки. - Старайтесь не задавать свойства, которые не поддерживаются — они просто игнорируются.
- Не используйте псевдоэлемент для логических операций — он только визуальный.
- Не забывайте про адаптивность: на разных экранах «первая строка» может меняться.
Поддержка
Псевдоэлемент ::first-line
поддерживается во всех современных браузерах, включая Chrome, Firefox, Safari, Edge. Работает на блоковых и строчно-блочных элементах (display: block
, inline-block
, inline
).
Заключение
::first-line
— это простой и эффективный инструмент, который помогает сделать текст живым и выразительным. Он особенно полезен для визуального оформления абзацев, заголовков, описаний, не вмешиваясь в HTML-структуру. Даже пара свойств может кардинально изменить восприятие контента.
Больше обзоров веб-функций — в телеграм-канале HTML Academy.
Нашли ошибку или опечатку? Напишите нам.
- 27 июля 2025

CSS-счётчики: как работает свойство counter-set
counter-set
— это новое CSS-свойство, с помощью которого можно явно установить значение счётчика в нужный момент. Оно похоже на counter-reset
, но отличается тем, что не сбрасывает счётчик, а просто присваивает ему конкретное значение. Это даёт больше контроля над нумерацией, особенно когда нужно продолжить счёт или задать его вручную в разных частях документа.
CSS-счётчики — это способ автоматически нумеровать элементы, например заголовки, пункты списка, шаги в инструкции. Их можно комбинировать с псевдоэлементами и свойством content
, чтобы вставлять числа прямо в текст.
- 25 июля 2025

Как работает :not() в CSS — исключаем элементы из стилей правильно
Доступно в Baseline в статусе «Widely Available» с 2023-07-21
Псевдокласс :not()
позволяет задать стили для всех элементов, кроме тех, что соответствуют определённому селектору. Это мощный инструмент, который делает CSS гибче, чище и избавляет от необходимости писать сложные конструкции или добавлять лишние классы в HTML.
- 20 июля 2025

Выбор цветов в CSS через hsl() и hsla()
CSS-функции hsl()
и hsla()
позволяют задавать цвета на основе восприятия человеком, а не машинной модели RGB. Это делает работу с цветами более гибкой и наглядной, особенно при создании адаптивных интерфейсов, тёмных тем или анимаций.
- 18 июля 2025

Как перекрыть один элемент другим. CSS-свойство z-index
Свойство z-index
в CSS отвечает за порядок наложения элементов на веб-странице. Оно определяет, какой элемент окажется сверху, а какой — будет скрыт под ним. Чем выше значение z-index
, тем ближе к пользователю расположен элемент.
- 16 июля 2025

Единица измерения cap в CSS
С 11 декабря 2023 года (Baseline: Newly Available) в CSS появилась новая единица измерения — cap
. Она измеряет высоту заглавной латинской буквы в шрифте, установленном для элемента. Это значит, что теперь можно задавать размеры, отступы и позиционирование элементов не только в пикселях, em
или rem
, но и относительно визуальной высоты заглавных букв.
Эта единица особенно полезна при работе с крупными заголовками, адаптивной типографикой и точным выравниванием текста.
- 8 июля 2025