Ознайомлення з функцією 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

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

202ЗСУ

SebWeo щиро вітає усіх із Новим роком! Бажаємо особистих перемог, а головне, найбажанішої — швидкої… Читати далі

31/12/2022

Який подарунок можна вручити батькові на День захисника України?

У кожної української сім'ї є свої певні традиції та улюблені свята, особливо усі ми любимо… Читати далі

19/08/2022

Демокріт

Ми потребуємо не стільки допомоги друзів, а більше тієї впевненості, що ми її отримаємо Демокріт… Читати далі

21/02/2022

Майк Тайсон

Коли мені важко, я завжди нагадую собі про те, що якщо я здамся — краще… Читати далі

12/02/2022

25 корисних порад та рішень jQuery, які ви повинні знати

jQuery – це швидка і досить невелика бібліотека JavaScript. Вона спрощує створення інтерактивних та приголомшливих… Читати далі

09/02/2022

Йоганн Вольфганг фон Гете

Кожен чує тільки те, що він розуміє Йоганн Вольфганг фон Гете   Читати далі

03/02/2022