Конвертер EM в REM
Дизайнер присылает вам макет из Figma в пикселях, кодовая база работает на rem, а половина компонентов написана на em в тех местах, где значение меняется в зависимости от размера шрифта родительского элемента. Этот конвертер вычисляет эквиваленты в px и rem для любого значения em при любом корневом размере шрифта, поэтому вы можете скопировать нужное число прямо в CSS-файл, не пересчитывая его в уме каждый раз.
Как преобразовать em, rem и пиксели
-
1
Задайте базовый размер шрифта
Обычно это 16px, значение браузера по умолчанию. Некоторые дизайн-системы используют в качестве корневого 14px или 18px.
-
2
Для em задайте размер шрифта родителя
em отсчитывается относительно родительского элемента. Если родитель равен 20px, то 1em равен 20px.
-
3
Введите значение
В em; эквиваленты в px и rem обновятся автоматически.
-
4
Прочитайте результат преобразования
Значения px, em и rem показываются как в округлённом виде, так и с точными десятичными знаками.
Формулы
rem всегда отсчитывается относительно корневого элемента (<html>):
px = rem * root_font_size
rem = px / root_font_size
em отсчитывается относительно родителя текущего элемента:
px = em * parent_font_size
em = px / parent_font_size
Преобразования при корне 16px
| Пиксели | rem | em (при родителе 16px) |
|---|---|---|
| 10 | 0.625 | 0.625 |
| 12 | 0.75 | 0.75 |
| 14 | 0.875 | 0.875 |
| 16 | 1 | 1 |
| 18 | 1.125 | 1.125 |
| 20 | 1.25 | 1.25 |
| 24 | 1.5 | 1.5 |
| 32 | 2 | 2 |
| 48 | 3 | 3 |
| 64 | 4 | 4 |
Когда что использовать
- px: границы, мелкие детали, точный контроль. Тень 1px, граница 1px.
- rem: внешние отступы, внутренние отступы и типографика, которые должны масштабироваться вместе с настройкой шрифта пользователя.
- em: локальные отступы внутри компонента, подстраивающиеся под его собственный размер шрифта (кнопки, бейджи).
- % и vw/vh: относительно контейнера и относительно области просмотра, это отдельная тема.
Приём с 62,5%
В некоторых кодовых базах задают html { font-size: 62.5%; }, чтобы 1rem = 10px. Это упрощает расчёты в rem (24px = 2.4rem), но ценой того, что нарушается настройка размера шрифта в браузере у пользователей, которые увеличивают текст. Современная практика избегает этого приёма; используйте корень 16px и допускайте десятичные значения.
Ловушка наследования em
em наследуется по каскаду. Если у родительского элемента font-size равен 1.2em относительно его собственного родителя, а внутри вы задаёте padding в 1em, то отступ составит 1.2 × 1.2 = 1.44 × корень. Вложенные em перемножаются, что может давать неожиданные результаты. rem избегает этого, потому что всегда вычисляется относительно <html>.
Пример типографической шкалы
Распространённая модульная шкала с коэффициентом 1.25:
| Уровень | rem | px (при корне 16) |
|---|---|---|
| Подпись | 0.75 | 12 |
| Основной текст | 1 | 16 |
| Основной текст+ | 1.125 | 18 |
| H4 | 1.25 | 20 |
| H3 | 1.5625 | 25 |
| H2 | 1.953 | ~31 |
| H1 | 2.441 | ~39 |
| Заголовок-акцент | 3.052 | ~49 |
Использование rem означает, что все уровни масштабируются пропорционально, если пользователь увеличивает размер шрифта в браузере ради доступности.
Уважение к настройкам пользователя
Жёсткое задание px по всей таблице стилей ломает работу пользователей, которые увеличивают текст по причинам, связанным со зрением. rem учитывает эти настройки, потому что отсчитывается от корневого размера, который пользователь может изменить. Именно поэтому руководства по стилю рекомендуют rem для типографики и отступов.
Часто задаваемые вопросы
Используйте rem для типографики, отступов и размеров макета. Используйте em для внутренних размеров компонента, которые должны масштабироваться вместе с собственным размером шрифта компонента (кнопки, значки внутри текста). Используйте px только для мелких деталей, которые не должны масштабироваться.
Пользователи могут изменить размер шрифта браузера по умолчанию. В Chrome по умолчанию 16px; если пользователь установил 18px, все ваши значения rem станут на 12,5 процента крупнее. Дизайнеры, исходящие из фиксированного корня 16px, часто упускают это из виду; rem уважает выбор пользователя, в этом и весь смысл.
Шкала отступов Tailwind использует rem. По умолчанию text-base, это 1rem = 16px, а text-lg, 1.125rem. Шкала единообразна и по умолчанию учитывает корневой размер шрифта.
Нет. Введённые числа используются только для расчёта конверсии, и ничего не сохраняется.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Генератор цветовой палитры
Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.
Инструмент доступен на других языках
- EM to REM Converter [EN]
- Chuyển đổi EM sang REM [VI]
- EM zu REM Konverter [DE]
- EM naar REM-converter [NL]
- EM till REM-omvandlare [SV]
- Convertidor de EM a REM [ES]
- EM에서 REM으로 변환기 [KO]
- Conversor de EM para REM [PT]
- Konwerter EM na REM [PL]
- Convertisseur EM en REM [FR]
- EM 转 REM 转换器 [ZH]
- محوّل EM إلى REM [AR]
- เครื่องแปลง EM เป็น REM [TH]
- EMからREMへの変換ツール [JA]
- EM'den REM'e Dönüştürücü [TR]
- Konverter EM ke REM [ID]
- Convertitore da EM a REM [IT]