Sobes.tech
Назад к вопросам
Middle+
1

Чем rem от em отличаются?

Компании, где спрашивали
Ifellow

Ответ от нейросети

sobes.tech AI

rem и em — это относительные единицы измерения в CSS, которые используются для задания размеров, но отличаются базой отсчёта.

  • em — относительная единица, основанная на размере шрифта родительского элемента. Например, если у родителя font-size: 16px, то 1em = 16px. Если у дочернего элемента font-size: 1.5em, то его размер будет 24px.

  • rem — относительная единица, основанная на размере шрифта корневого элемента (обычно <html>). Например, если у <html> font-size: 16px, то 1rem всегда равен 16px, независимо от вложенности.

Основное отличие:

  • em зависит от контекста (родителя), что может приводить к каскадному умножению размеров при вложенности.
  • rem всегда фиксирован относительно корня, что упрощает управление размерами и делает их более предсказуемыми.

Пример:

html {
  font-size: 16px;
}

.parent {
  font-size: 20px; /* 1em = 20px внутри .parent */
}

.child-em {
  font-size: 1.5em; /* 1.5 * 20px = 30px */
}

.child-rem {
  font-size: 1.5rem; /* 1.5 * 16px = 24px */
}

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