Функция rem()

Стилевая функция rem() возвращает остаток от деления — это число, которое остаётся после того, как одно целое число делится на другое. Например, 15 делится на 4 с остатком 3:

15 / 4 = 3, остаток 3.

То есть 4 умещается в 15 ровно 3 раза, а после чего остается ещё число 3. Это и есть остаток от деления.

С помощью остатка от деления можно определить, делится ли число нацело на другое. Если остаток равен нулю — значит число делится нацело. А если остаток не равен нулю — то число не делится нацело, деление происходит с остатком.

Синтаксис

rem(<делимое>, <делитель>);
Описание Пример
<тип> Указывает тип значения. <размер>
A && B Значения должны выводиться в указанном порядке. <размер> && <цвет>
A | B Указывает, что надо выбрать только одно значение из предложенных (A или B). normal | small-caps
A || B Каждое значение может использоваться самостоятельно или совместно с другими в произвольном порядке. width || count
[ ] Группирует значения. [ crop || cross ]
* Повторять ноль или больше раз. [,<время>]*
+ Повторять один или больше раз. <число>+
? Указанный тип, слово или группа не является обязательным. inset?
{A, B} Повторять не менее A, но не более B раз. <радиус>{1,4}
# Повторять один или больше раз через запятую. <время>#

Значения

В качестве значений допустимо указывать целые числа (rem(20, 3)), проценты (rem(100%, 3%)) и любые допустимые единицы CSS (rem(40deg, 3deg)).

  • Делимое и делитель должны быть одного типа (rem(5em, 2em)).
  • На ноль делить нельзя, в противном случае результатом будет NaN — rem(2, 0) вернёт NaN.
  • Если в качестве делимого указать ключевое слово infinite (бесконечность), то результатом будет NaN — rem(infinite, 3) вернёт NaN.
  • Знак результата всегда принимает знак делимого — rem(-15, 2) вернёт -1.

Пример

<!DOCTYPE html> <html lang="ru"> <head> <meta charset="utf-8"> <title>rem()</title> <style> .container { display: flex; /* Выстраиваем по горизонтали */ min-height: 6rem; /* Минимальная высота */ gap: rem(100%, 3%); /* Расстояние между блоками */ } .container > div { background-color: cadetblue; /* Цвет фона */ color: white; /* Цвет текста */ display: flex; /* Для выравнивания текста */ justify-content: center; align-items: center; /* Выравнивание по центру */ flex-grow: 1; /* Занимают одинаковую ширину */ font-size: 2em; /* Размер текста */ } </style> </head> <body> <div class="container"> <div>1</div> <div>2</div> <div>3</div> </div> </body> </html>

В данном примере функция rem() используется для вычисления размера между блоками по горизонтали.

Спецификация

CSS Values and Units Module Level 4

Браузеры

15.4 118
119 15.4

В таблице браузеров применяются следующие обозначения.

  • — элемент полностью поддерживается браузером;
  • — элемент браузером не воспринимается и игнорируется;
  • — при работе возможно появление различных ошибок, либо элемент поддерживается с оговорками.

Число указывает версию браузреа, начиная с которой элемент поддерживается.

См. также