Конвертер CSS-единиц — это инструмент, который переводит значения длины между различными системами измерения CSS. CSS определяет более дюжины единиц длины, разделённых на две группы: абсолютные единицы — px, pt, cm, in — с фиксированными физическими размерами, и относительные единицы — rem, em, vw, vh и % — которые зависят от контекста: размера шрифта или размеров viewport.
При рендеринге браузеры приводят все CSS-длины к пикселям. Когда вы пишете 1.5rem, браузер умножает 1.5 на корневой размер шрифта (обычно 16px) и получает 24px. Когда вы пишете 50vw, берётся половина текущей ширины viewport. Понимание этих взаимосвязей необходимо для построения лейаутов, которые масштабируются на разных устройствах и учитывают пользовательские настройки, например нестандартный размер шрифта, заданный в браузере.
Спецификация CSS Values and Units Module Level 4 (W3C) определяет точные коэффициенты пересчёта между всеми абсолютными единицами: 1in = 96px = 72pt = 2.54cm = 25.4mm. У относительных единиц фиксированного коэффициента нет, поскольку они зависят от контекста выполнения. Бесплатный конвертер CSS-единиц позволяет мгновенно вычислить эти соотношения для конкретного корневого размера шрифта и размеров viewport без написания кода.
Зачем использовать этот конвертер CSS-единиц?
Ручной перевод между CSS-единицами требует запоминания коэффициентов, открытия калькулятора и проверки вычислений. Этот инструмент выполняет конвертацию прямо в браузере без лишних действий.
⚡
Мгновенная конвертация
Введите значение, выберите исходную единицу — и сразу увидите результаты во всех 10 CSS-единицах. Никаких отдельных вычислений для px-в-rem, px-в-vw или px-в-pt.
🔒
Приватность данных
Все вычисления выполняются локально в браузере. Никакие значения не отправляются на сервер, не записываются в логи и не сохраняются. Закройте вкладку — данные исчезнут.
🎯
Точный учёт контекста
Задайте корневой размер шрифта, ширину viewport, высоту viewport и размер шрифта родительского элемента. Конвертер использует эти значения для точного расчёта rem, em, vw, vh и % единиц.
📏
Поддержка всех единиц длины CSS
Поддерживаются px, rem, em, vw, vh, %, pt, cm, mm и in. Работаете ли вы с экранными лейаутами, таблицами стилей для печати или адаптивной типографикой — все единицы учтены.
Сценарии использования конвертера CSS-единиц
Frontend-разработка
Конвертируйте значения в пикселях из макета в rem для библиотеки компонентов. Когда в макете Figma задан отступ 24px, переведите его в 1.5rem — тогда лейаут будет масштабироваться в зависимости от пользовательских настроек размера шрифта.
Backend и full-stack разработка
Создавайте шаблоны PDF или писем, где размеры задаются в pt или cm. Конвертируйте значения в px в точки для печати при серверном рендеринге с такими инструментами, как Puppeteer или wkhtmltopdf.
DevOps и CI-пайплайны
Проверяйте, что токены отступов дизайн-системы используют согласованные единицы на всех этапах сборки. Быстро убеждайтесь, что база 16px даёт ожидаемые значения rem в генерируемом CSS.
QA и визуальное тестирование
Проверяйте вычисленные стили при кросс-браузерном тестировании. Когда Chrome DevTools показывает вычисленное значение 14.4px, переведите его в rem и убедитесь, что оно соответствует ожидаемым 0.9rem из таблицы стилей.
Визуализация данных
Задавайте размеры SVG или canvas-элементов относительно размеров viewport. Конвертируйте фиксированную ширину диаграммы в vw-единицы, чтобы визуализации занимали одинаковый процент экрана на разных мониторах.
Изучение CSS
Разбирайтесь в соотношении rem, em и px, экспериментируя с разными базовыми размерами. Измените корневой размер шрифта с 16px на 18px и посмотрите, как изменятся все значения rem.
Справочник по единицам длины CSS
CSS определяет 10 широко используемых единиц длины. Абсолютные единицы имеют фиксированное соотношение с пикселями. Относительные единицы зависят от контекста: корневой размер шрифта — для rem, размер шрифта родительского элемента — для em, размеры окна браузера — для vw и vh.
Единица
Название
Значение по умолчанию
Относительно
px
Pixel
1px
Fixed; 1px = 1/96 of 1in on screens
rem
Root em
16px (default)
Relative to <html> font-size
em
Em
Inherited
Relative to parent element font-size
vw
Viewport width
1% of viewport
Relative to browser window width
vh
Viewport height
1% of viewport
Relative to browser window height
%
Percentage
Varies
Relative to parent property value
pt
Point
1.333px
Print unit; 1pt = 1/72 of 1in
cm
Centimeter
37.795px
Physical unit; 1cm = 96px / 2.54
mm
Millimeter
3.7795px
Physical unit; 1mm = 1cm / 10
in
Inch
96px
Physical unit; 1in = 96px (CSS spec)
Абсолютные и относительные единицы CSS
Выбор между абсолютными и относительными единицами влияет на то, как лейаут адаптируется к разным экранам и пользовательским настройкам. Каждая группа имеет свои компромиссы.
Абсолютные единицы (px, pt, cm, mm, in)
Абсолютные единицы дают одинаковый физический размер независимо от контекста. Используйте px для рамок, теней и элементов, которые не должны масштабироваться. Используйте pt для таблиц стилей печати. Спецификация CSS определяет 1in = 96px, хотя фактический физический размер зависит от DPI дисплея.
Относительные единицы (rem, em, vw, vh, %)
Относительные единицы масштабируются в зависимости от контекста. Используйте rem для размеров шрифта и отступов, чтобы учитывать пользовательские настройки. Используйте em для внутреннего масштабирования компонента (padding относительно размера шрифта самого элемента). Используйте vw/vh для лейаутов, заполняющих viewport, например hero-секций.
Таблица перевода px в rem
Таблица рассчитана для корневого размера шрифта 16px (браузерное значение по умолчанию). Если в вашем проекте используется другая база, разделите значение в пикселях на эту базу, чтобы получить эквивалент в rem.
px
rem
pt
Типичное применение
10
0.625
7.5
Small caption text
12
0.75
9
Body text (compact)
14
0.875
10.5
Default body text
16
1
12
Root font-size (browser default)
18
1.125
13.5
Large body text
20
1.25
15
H4 heading
24
1.5
18
H3 heading
32
2
24
H2 heading
48
3
36
H1 heading
64
4
48
Display / hero text
Примеры кода
Эти примеры показывают, как программно конвертировать CSS-единицы на JavaScript, Python, через CSS-кастомные свойства и Sass.
JavaScript
// px to rem (given root font-size of 16px)
const pxToRem = (px, base = 16) => px / base
pxToRem(24) // → 1.5
// rem to px
const remToPx = (rem, base = 16) => rem * base
remToPx(1.5) // → 24
// px to vw (given viewport width of 1440px)
const pxToVw = (px, viewport = 1440) => (px / viewport) * 100
pxToVw(360) // → 25
// Dynamic calculation using getComputedStyle
const rootFontSize = parseFloat(
getComputedStyle(document.documentElement).fontSize
) // → 16 on most browsers
Какой корневой размер шрифта установлен в браузерах по умолчанию?
Все основные браузеры (Chrome, Firefox, Safari, Edge) используют корневой размер шрифта 16px по умолчанию. Это означает, что 1rem = 16px, если пользователь или таблица стилей не переопределяет font-size элемента html. Некоторые пользователи увеличивают это значение в настройках браузера для доступности — именно поэтому rem предпочтительнее px в качестве единицы для текста по умолчанию.
Как перевести px в rem?
Разделите значение в пикселях на корневой размер шрифта. При базовом размере 16px по умолчанию: 24px / 16 = 1.5rem. Если в проекте задано html { font-size: 10px } (распространённый сброс), то 24px / 10 = 2.4rem. Формула всегда одна: rem = px / корневой-размер-шрифта.
В чём разница между rem и em?
rem привязан к размеру шрифта корневого элемента (тег html), а em — к размеру шрифта родительского элемента текущего элемента. Это означает, что rem обеспечивает единообразный размер по всей странице, тогда как em накапливается при вложении. Значение 2em внутри родителя с 2em даёт 4-кратный корневой размер. Используйте rem для глобальных отступов и размеров шрифта; em — когда нужно, чтобы размер масштабировался относительно шрифта самого компонента.
Когда следует использовать единицы vw или vh?
Используйте vw для элементов, которые должны масштабироваться с шириной окна браузера: полноширинные hero-секции, адаптивная типографика (clamp с vw). Используйте vh для полноэкранных секций или лейаутов с высотой viewport. Будьте осторожны с vh в мобильных браузерах, где адресная строка меняет высоту viewport; новая единица dvh (dynamic viewport height) решает эту проблему.
Можно ли смешивать разные CSS-единицы в одном свойстве?
Да. Функция CSS calc() позволяет комбинировать любые единицы в одном выражении. Например, width: calc(100vw - 2rem) вычитает 32px (при базовом размере по умолчанию) из полной ширины viewport. Единицы можно также смешивать в clamp(): font-size: clamp(1rem, 2vw + 0.5rem, 2.5rem) создаёт адаптивную типографику, масштабирующуюся от 16px до 40px.
Сколько пикселей в 1pt в CSS?
В CSS 1pt = 1/72 дюйма, а 1 дюйм = 96px, поэтому 1pt = 96/72 ≈ 1.333px. Это соотношение зафиксировано в спецификации CSS независимо от DPI экрана. Пункты в основном используются в таблицах стилей для печати и генерации PDF. Для экранного дизайна лучше подходят px или rem.
По-прежнему ли сброс font-size до 62.5% считается хорошей практикой?
Установка html { font-size: 62.5% } делает 1rem = 10px, что упрощает устные вычисления (24px = 2.4rem). Однако при этом нужно явно задавать font-size для элемента body, и могут возникнуть проблемы со сторонними компонентами, рассчитанными на базовый размер 16px по умолчанию. Современный подход — сохранять значение 16px по умолчанию и использовать функцию Sass или плагин PostCSS для автоматической конвертации.