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

calc()

calc() - это функция CSS, которая даёт возможность рассчитать значения свойств CSS во время их определения. Она может быть использована везде, где применимы длина, частота, угол, время, число.

Демо

Синтаксис

1
2
/* property: calc(expression) */
width: calc(100% - 80px);

Функция calc() принимает в качестве параметра математическое выражение, результат вычисления которого можно использовать как значение CSS-свойства. Выражение может включать операторы +, -, *, / с использованием стандартных правил приоритета операторов:

  • + — Сложение
  • - — Вычитание
  • * — Умножение. По крайней мере хоть один из сомножителей должен быть <number>
  • / — Деление. Делитель должен быть <number>

Операнды в expression могут быть различными выражениями <length>. Если пожелаете, то можете использовать разные единицы измерения для каждого из операндов. Вы также можете использовать скобки, чтобы указать порядок вычисления.

Примечание

Деление на ноль выдаст ошибку при парсинге HTML.

Примечание

Операторы + и - всегда должны быть по обеим сторонам отделены пробелом. Выражение calc(50% -8px) будет интерпретировано как величина в процентах и следующее за ним отрицательное число в пикселях (не верное выражение), в то время как calc(50% - 8px) - правильное выражение, будет интерпретировано как вычитание из процентов длины в пикселях. Операторы * и / не требуют отделения от операндов знаком пробела, но это не запрещено и даже приветствуется.

Примеры

Вложенный calc() с CSS переменными

Вы также можете использовать calc() с CSS переменными. Рассмотрим пример кода:

1
2
3
4
5
6
.foo {
    --widthA: 100px;
    --widthB: calc(var(--widthA) / 2);
    --widthC: calc(var(--widthB) / 2);
    width: var(--widthC);
}

Поддержка браузерами

Data on support for the calc feature across the major browsers from caniuse.com

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

Ссылки

Комментарии