CSSБесплатно

CSS Specificity Calculator

Вычислите специфичность CSS-селекторов и узнайте, какой стиль победит при конфликте

Ctrl+Enter для расчёта

Примеры

Как работает специфичность CSS

a — ID селекторы
#header#nav#logo
b — Классы, атрибуты, псевдоклассы
.menu[type="text"]:hover:nth-child(2)
c — Элементы, псевдоэлементы
divp::before::after

Важно: специфичность не переносится между разрядами. 11 классов не перекроют один ID.

!important полностью игнорирует специфичность и имеет наивысший приоритет.

:where() всегда имеет специфичность 0-0-0, а :not() берёт специфичность своего аргумента.

О сервисе CSS Specificity Calculator

Калькулятор специфичности CSS-селекторов. Введите один или несколько селекторов — инструмент вычислит их вес по правилам каскада (a, b, c) и покажет, какой стиль применится при конфликте. Полезно для отладки и изучения приоритетов CSS.

Расчёт специфичности (a, b, c) по стандарту CSS
Сравнение нескольких селекторов одновременно
Визуальные бары и цветовая кодировка результатов
Определение «победителя» при конфликте стилей
Поддержка :not(), :where(), ::before и других псевдоклассов
Работает полностью в браузере, без отправки данных на сервер

Часто задаваемые вопросы

Три числа (a, b, c): a — количество ID-селекторов (#id), b — количество классов (.class), атрибутов ([attr]) и псевдоклассов (:hover), c — количество элементов (div, p) и псевдоэлементов (::before). Сравнение идёт слева направо: (1,0,0) побеждает (0,10,0).

Специфичность — это тройка (a,b,c), а не одно число. Один #id (1,0,0) всегда побеждает любое количество .class (0,n,0), потому что сравнение начинается с категории a.

:not() принимает специфичность самого специфичного аргумента. :where() всегда имеет специфичность 0 — удобно для сброса стилей без повышения веса.

Специфичность приоритетнее порядка. При равной специфичности побеждает правило, идущее позже в каскаде. Порядок учитывается только при одинаковом «весе» селекторов.

Полезные статьи

Руководства и советы по теме