Специфичность определяет приоритет CSS-правил при их конфликте, когда к одному элементу применяются разные стили. Она вычисляется для каждого селектора в правиле.
Специфичность — это числовая оценка, состоящая из четырех категорий (A, B, C, D), записываемая как 0,0,0,0. Чем больше число, тем выше специфичность.
Категории:
style в HTML-элементе. Имеют наивысшую специфичность (например, 1,0,0,0).#my-id). Увеличивают вторую цифру (например, 0,1,0,0)..my-class), атрибуту (например, [type="text"]), псевдоклассу (например, :hover, :first-child). Увеличивают третью цифру (например, 0,0,1,0).div, p) и псевдоэлементам (например, ::before, ::after). Увеличивают четвертую цифру (например, 0,0,0,1).Пример расчета:
p - 0,0,0,1.my-class - 0,0,1,0#my-id - 0,1,0,0div p - 0,0,0,2 (сумма специфичностей двух тегов)#my-id .my- Аclass - 0,1,1,0 (сумма специфичности ID и класса)div#my-id.my-class:hover - 0,1,2,1 (сумма специфичности тега, ID, класса и псевдокласса)Правила:
in-line style всегда выше любой комбинации других селекторов, кроме правил с флагом !important.!important имеют наивысший приоритет, переопределяя даже in-line style. Использование !important не рекомендуется из-за сложности отладки.*) и псевдокласс :where() имеют специфичность 0,0,0,0 и не увеличивают общую специфичность.css