Что умеет инструмент
Инструмент переводит длины CSS между пикселями и относительными единицами rem и em. Введите одно значение, например 24px, и получите 1.5rem; перечислите несколько значений по одному в строке, чтобы перевести их разом; или вставьте целую таблицу стилей — все значения px в ней будут заменены на месте. Справочная таблица показывает распространённые размеры от 1px до 128px при вашем базовом размере. Ничего не покидает браузер.
Как пользоваться
- Вставьте CSS или введите значения по одному в строке. Числа без единиц считаются px (или rem/em при обратном направлении), а значение в другой единице переводится в обратную сторону.
- Задайте Базовый размер шрифта. Во всех браузерах по умолчанию 16px; в некоторых проектах пишут
html { font-size: 62.5% }, чтобы 1rem = 10px. - Выберите Направление (px → rem или rem → px), Единицу (rem или em) и число Знаков после запятой.
- При желании задайте Оставлять в px значения меньше, чтобы рамки в 1px и другие тонкие линии остались в px.
- Скопируйте результат кнопкой над ним.
Пример
/* before */
.title { font-size: 24px; margin-bottom: 12px; }
/* after (base 16px) */
.title { font-size: 1.5rem; margin-bottom: 0.75rem; }
Значения не в px — проценты, цвета, имена файлов в url() и классы вроде .mt-16px — не меняются. 0px превращается в 0.
px, rem и em
- px — абсолютная единица, она не учитывает предпочтительный размер шрифта читателя.
- rem («root em») — кратное размера шрифта элемента
html. Если читатель выставит в браузере 20px, 1rem станет 20px, и вся вёрстка масштабируется. - em — кратное размера шрифта текущего элемента. Удобно для отступов, которые должны следовать за своим текстом, но вложенные em перемножаются, поэтому rem надёжнее как вариант по умолчанию.
Медиазапросы тоже переводятся: @media (min-width: 768px) становится 48rem (или 48em), и точки перелома остаются согласованными при увеличении текста. В медиазапросах rem и em отсчитываются от размера шрифта браузера по умолчанию, а не от вашего правила для html.
Частые вопросы
› Как перевести px в rem?
Разделите значение в пикселях на размер шрифта корневого элемента. При стандартных для браузеров 16px получится 24px ÷ 16 = 1.5rem и 12px ÷ 16 = 0.75rem. Обратно — умножение: 2rem × 16 = 32px.
› Чем rem отличается от em?
rem отсчитывается от размера шрифта корневого элемента html, поэтому 1rem везде на странице одинаков. em отсчитывается от размера шрифта текущего элемента (а в самом font-size — от родителя), поэтому при вложенности значения перемножаются. Используйте rem для большинства размеров, а em — когда что-то должно масштабироваться вместе со своим текстом, например внутренние отступы кнопки.
› Зачем использовать rem вместо px?
Если читатель увеличит размер шрифта по умолчанию в настройках браузера, размеры в rem вырастут вместе с ним, а px останутся прежними. rem сохраняет доступность вёрстки и позволяет масштабировать весь дизайн, изменив одно корневое значение.
› Нужно ли переводить рамки в 1px?
Обычно нет. Линия толщиной 0.0625rem при некоторых масштабах может размыться или исчезнуть. Установите «Оставлять в px значения меньше» на 2px — тогда рамки и другие крошечные значения останутся в px.