функция calc()

Алгебра в calc(), новая специфичность селекторов 4 уровня и другие майские новинки CSS

HTML, CSS, JS

Вчерашняя (уже третья за май 2018 г.) телеконференция Рабочей группы CSS принесла несколько сюрпризов: в функцию calc() добавили долгожданную возможность делить значения одинаковой размерности друг на друга (например, calc(500px / 100vw)), получая безразмерные коэффициенты (а в перспективе — вообще делать любые математически допустимые операции с CSS-величинами, скажем, высчитывать площади фигур в квадратных пикселях, умножая высоту на ширину, или делить расстояние на время, получая скорость анимации в пикселях в секунду). А у псевдоклассов :matches(), :not() (со списком аргументов) и :has() из модуля селекторов 4 уровня изменились правила специфичности — теперь она не будет высчитываться динамически в зависимости от того, какой аргумент из списка реально совпал, а всегда браться по самому специфичному из аргументов. Так что давнюю реализацию в WebKit и недавнюю частичную в Chrome опять придется переделывать — но, по идее, для будущих реализаций новый алгоритм станет проще.

Когда бывает нужен calc()

Перевод статьи Use Cases For Css Calc с сайта vincentp.me, опубликовано на css-live.ru с разрешения автора — Винсента Пикеринга

Цитата из твиттера:

Винсент Пикеринг:
— С каждым днём нахожу всё больше применений для calc(). Он действительно полезный

Гарри Робертс:
— Напишешь о некоторых из них?

Безусловно, Гарри, вот основные вещи, для которых я применяю функцию Calc сегодня: