Перейти к содержанию

Математические функции

Для удобства работы с числами доступны математические функции, которые представляют собой прослойку между Less-функциями и встроенным объектом Math в JavaScript.

Кратко рассмотрим основные функции, которые могут пригодиться при работе с препроцессором при построении фреймворков и максимально унифицированных less-файлов.

Округление значений

При необходимости значения, получаемые после проведения математических операций, можно округлять, используя стандартные методы ceil(), floor() и round(), представленные в Less в виде функций. Кроме того, Less предоставляет новую функцию percentage().

Функция ceil() всегда округляет значения в большую сторону до целой части:

ceil(14.3) // 15
ceil(13.9) // 14
ceil(14.5) // 15

Функция floor() всегда округляет значения в меньшую сторону до целой части (отбрасывает дробную часть):

floor(14.3) // 14
floor(13.9) // 13
floor(14.5) // 14

Функция round() округляет значения в соответствии с правилами математики и заданным количеством знаков после запятой:

round(14.3) // 14
round(13.9) // 14
round(14.5) // 15

// Знаки после запятой
round(14.0714)    // 14
round(14.0714, 1) // 14.1
round(14.0714, 2) // 14.07
round(14.0714, 3) // 14.071
round(14.0714, 4) // 14.074
round(14.0714, 7) // 14.074

Функция percentage() преобразует дробное значение в процентное:

percentage(0.25) // 25%
percentage(1 / 25) // 4%

Важно заметить, что дробная запись 1 / 25 сначала вычисляется как математическая операция, а уже потом передаётся в функцию. То есть, по сути своей, работает с числами с плавающей запятой.

Прочие функции

Математические функции, представленные ниже, являются вторичными и применяются крайне редко. Дело в том, что возможность применять Less для сложных вычислений предоставляется очень редко, ведь это всего-лишь надстройка над CSS.

Тригонометрические функции:

  • sin(value)
  • cosvalue)
  • tan(value)

Обратные тригонометрические функции:

  • asin(value)
  • acos(value)
  • atan(value)

Модуль числа, модуль между числами:

  • abs(value)
  • mod(valueOne, valueTwo)

Поиск минимального и максимального значения:

  • min(list) // min(1, 14, 19, 0.3)
  • max(list) // max(1%, 10%, 4%, 8%)

Работа со степенями (квадратный корень и степень):

  • sqrt(value)
  • pow(value, power) // value в power степени

Математические константы:

  • pi()