ToolDeck

CSS Unit Converter

Конвертация CSS-единиц между px, rem, em, vw, vh и %

px16
rem1
em1
vw1.111111
vh1.777778
%100
pt12
cm0.4233331
mm4.233331
in0.1666667
Также попробуйте:CSS FormatterCSS Minifier

Что такое конвертер CSS-единиц?

Конвертер 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.

ЕдиницаНазваниеЗначение по умолчаниюОтносительно
pxPixel1pxFixed; 1px = 1/96 of 1in on screens
remRoot em16px (default)Relative to <html> font-size
emEmInheritedRelative to parent element font-size
vwViewport width1% of viewportRelative to browser window width
vhViewport height1% of viewportRelative to browser window height
%PercentageVariesRelative to parent property value
ptPoint1.333pxPrint unit; 1pt = 1/72 of 1in
cmCentimeter37.795pxPhysical unit; 1cm = 96px / 2.54
mmMillimeter3.7795pxPhysical unit; 1mm = 1cm / 10
inInch96pxPhysical 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.

pxremptТипичное применение
100.6257.5Small caption text
120.759Body text (compact)
140.87510.5Default body text
16112Root font-size (browser default)
181.12513.5Large body text
201.2515H4 heading
241.518H3 heading
32224H2 heading
48336H1 heading
64448Display / 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
Python
# CSS unit converter functions

def px_to_rem(px: float, base: float = 16) -> float:
    return px / base

def rem_to_px(rem: float, base: float = 16) -> float:
    return rem * base

def px_to_vw(px: float, viewport: float = 1440) -> float:
    return (px / viewport) * 100

def px_to_pt(px: float) -> float:
    return px * 72 / 96

print(px_to_rem(24))     # → 1.5
print(rem_to_px(2.5))    # → 40.0
print(px_to_vw(720))     # → 50.0
print(px_to_pt(16))      # → 12.0
CSS (calc & custom properties)
/* Define a base scale using rem */
:root {
  --base: 16px;       /* root font-size */
  --space-1: 0.25rem; /* 4px */
  --space-2: 0.5rem;  /* 8px */
  --space-4: 1rem;    /* 16px */
  --space-8: 2rem;    /* 32px */
}

/* Fluid typography: scales between 1rem (16px) and 2.5rem (40px) */
h1 {
  font-size: clamp(1rem, 2.5vw + 0.5rem, 2.5rem);
}

/* Viewport-relative hero height */
.hero {
  height: calc(100vh - 4rem); /* full viewport minus 64px header */
}

/* Percentage-based grid */
.sidebar { width: 25%; }     /* 360px on 1440px screen */
.content { width: 75%; }     /* 1080px on 1440px screen */
SCSS (mixin)
// Reusable px-to-rem function in Sass
@use "sass:math";

$base-font-size: 16px !default;

@function rem($px) {
  @return math.div($px, $base-font-size) * 1rem;
}

// Usage
.card {
  padding: rem(24px);       // → 1.5rem
  margin-bottom: rem(32px); // → 2rem
  border-radius: rem(8px);  // → 0.5rem
  font-size: rem(14px);     // → 0.875rem
}

Часто задаваемые вопросы

Какой корневой размер шрифта установлен в браузерах по умолчанию?
Все основные браузеры (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 для автоматической конвертации.