Вебсправочник
Основы веб-разработки

em и rem: относительные размеры без случайного умножения

Единицы em и rem выражают размер относительно шрифта, но используют разные точки отсчёта.

Назначение

Единицы em и rem выражают размер относительно шрифта, но используют разные точки отсчёта.

Как это работает

rem связан с размером шрифта корневого элемента. em у font-size зависит от родительского шрифта, а у многих других свойств — от собственного вычисленного размера шрифта элемента. Вложенные изменения font-size могут накапливаться.

Пример

<style>.large{font-size:1.25rem}.large button{font:inherit;padding:.5em 1em}</style>
<div class="large"><button type="button">Масштабируемая кнопка</button></div>

Что должно получиться

Размер текста привязан к корню, а внутренние отступы кнопки — к её собственному шрифту. Это позволяет увеличивать компонент без ручного пересчёта каждого отступа.

Граница применения и частая ошибка

Не задавайте каждому вложенному блоку font-size:1.2em, ожидая один и тот же размер. На нескольких уровнях текст станет последовательно увеличиваться.

Самостоятельная проверка

Сравните вложенные списки с font-size в em и rem. Затем задайте кнопке padding:.5em и измените её шрифт: отступ должен масштабироваться вместе с текстом.

HTML и CSS можно изменить в песочнице ниже. Она изолирована: JavaScript, внешние ресурсы и отправка форм отключены. Для проверки сетевых запросов, отправки данных или функций браузера используйте отдельную локальную страницу.

Попробуйте сами

HTML + CSS песочница
РЕЗУЛЬТАТ · ИЗОЛИРОВАННЫЙ ПРЕДПРОСМОТР
Измените код и нажмите «Запустить». JavaScript и внешние запросы отключены.
Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.