Ознайомлення з функцією calc() в CSS

Функція calc() в CSS – це простий спосіб виконати прості математичні дії прямо в CSS стилях без використання, наприклад, мови програмування PHP. Функція вміє працювати з чотирма простими математичними операторами: додавання (+), віднімання (), множення (*) і ділення (/). З допомогою функції calc() ви можете розрахувати значення властивостей CSS прямо під час їх визначення.

 

 

Приклад синтаксису функції calc()

/* властивість: calc(математична дія); */width: calc(100% - 35px);

 

Математична дія, яку можна виконати для виразу, може приймати наступні форми:

  • + (додавання). Приклад: width: calc(25px + 75px);
  • - (віднімання). Приклад: padding-top: calc(50px - 7%);
  • * (множення). Приклад: line-height: calc(20% * 2);
  • / (ділення). Приклад: margin: calc(35% / 2);

 

 

Зауваження щодо використання функції calc()

  • Знаки плюс та мінус повинні бути відділені від значень пробілами с двох боків. Вираз calc(100% -35px) буде інтерпретовано як величину в процентах та наступне за ним від’ємне число в пікселях (невірний вираз), в той час як вираз calc(100% - 35px) – буде інтерпретовано як віднімання від процентів певної кількості пікселів (тобто, це буде правильний вираз).
  • Оператори * і / не вимагають відділення від операндів пробілами, але це не заборонено і навіть вітається для кращого читання
  • Ви можете використовувати різні одиниці вимірювання для кожного з операндів. Щоб вказати бажаний порядок обчислення, ви можете використовувати дужки.
  • Якщо значення не може бути обчислено, воно ігнорується.
  • Ділення на нуль видасть помилку при парсингу HTML.

 

 

Коли можна використовувати calc()

Функція calc() стає вкрай корисною, коли одне із значень є відносною одиницею (наприклад, %), а інше – фіксованою. Ця властивість дуже часто застосовується в адаптивному веб-дизайні.

 

 

Приклад використання: позиціонування об’єкта за допомогою відступу

У приклад нижче ми позиціонуємо блок на всю ширину вікна, з відступами по краях в 40px при будь-якому розмірі девайсу.

.block {
 position: absolute;
 width: 85%; /* Для браузерів, які не підтримують calc() */ width: calc(100% - 50px);
 padding: 15px;
 border: 1px #000 solid;
}

 

 

Підтримка функції calc() браузерами

Підтримка на подив досить хороша.

  • Firefox до версії 16.0 підтримує значення -moz-calc.
  • Chrome до версії 26.0 підтримує значення -webkit-calc.
  • Safari з версії 6.0 підтримує значення -webkit-calc.
  • На мобільних пристроях Android тільки з 67+, iOS тільки на 6.0+, а Opera Mini поки не підтримує цю функцію.

 

Share

Останні пости

Як вибрати ідеальний ноутбук: Повний гайд

Вибір ноутбука може бути складним завданням у світі, де ринок переповнений варіантами на будь-який смак… Читати далі

22/04/2024

Томас Едісон

Наш великий недолік в тому, що ми занадто швидко опускаємо руки. Найбільш діючий метод досягти… Читати далі

20/04/2024

Найкрасивіші та найбільш вражаючі мости з усього світу (ТОП-10)

Міст — це щось більше, ніж просто споруда, яка поєднує два береги. Для того, щоб… Читати далі

19/04/2024

Соломон

Життя нас вчить, що свою пару ми пізнаємо, коли розлучаємося, своїх братів ми пізнаємо, коли… Читати далі

18/04/2024

Чак Поланік

Хто може — той робить. Хто не може — той критикує Чак Поланік   Читати далі

17/04/2024

Річард Бах

Жодне бажання не дається тобі окремо від сили, що дозволяє його здійснити. Хоча, можливо, для… Читати далі

16/04/2024