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

 

Recent Posts

Допомога при виборі та купівлі електрогенератора в Україні

В сучасному світі, в якому стабільність електропостачання є ключовим фактором комфорту та безперебійної роботи, наявність…

2 дні ago

Воррен Баффет

Навіть якщо ви дуже талановиті і докладаєте великих зусиль, для деяких результатів просто потрібен час:…

6 днів ago

Покрокова інструкція Імпорту даних з Excel в MySQL через phpMyAdmin

Цей практичний урок допоможе вам перенести дані з вашого Excel-файлу (з деякими конкретними стовпцями) до…

1 тиждень ago

Поширені міфи та помилки про пиво: відновлюємо справедливість

Пиво – один із найпопулярніших напоїв, який поряд з чаєм та кавою відомий у всіх…

1 тиждень ago

Уроки JavaScript — Короткі функції на заміну великому об’ємному коду

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

2 тижні ago

Навіщо та як прокидатися раніше

Дискусії навколо цієї теми вас, певно, вже втомили. Але я в даній статті постараюсь показати…

2 тижні ago