В CSS специфика является мерой, которая определяет силу селектора. Свойства в селекторах с самой высокой спецификой применяются, переопределяя те же свойства селекторов с более низкой спецификой, независимо от их положения в рамках таблицы стилей.

В CSS специфика является мерой, относился к правилу стиля, которое обеспечивает рейтинг, на основе его селектора, для разрешения конфликтов между его объявлениями стиля и объявлениями других правил стиля.

Вычисление специфики

Как определенный Раздел 6.4.3 из спецификации CSS2.1 и улучшенный на Уровне 3 Селекторов:

Специфика селектора вычисляется следующим образом:

  • считайте количество идентификационных селекторов в селекторе (= a)
  • считайте количество селекторов класса, селекторов атрибутов и псевдоклассов в селекторе (= b)
  • считайте количество селекторов типа, и псевдоэлементы в селекторе (= c) игнорируют универсальный селектор
  • Селекторы в псевдоклассе отрицания считаются как любой другой, но само отрицание не рассчитывает как псевдокласс.

Конкатенация этих трех abc чисел (в системе счисления с большой основой) дает специфику.

Примеры:

* /* a=0 b=0 c=0 -> specificity = 0 */ LI /* a=0 b=0 c=1 -> specificity = 1 */ UL LI /* a=0 b=0 c=2 -> specificity = 2 */ UL OL+LI /* a=0 b=0 c=3 -> specificity = 3 */ H1 + *[REL=up] /* a=0 b=1 c=1 -> specificity = 11 */ UL OL LI.red /* a=0 b=1 c=3 -> specificity = 13 */ LI.red.level /* a=0 b=2 c=1 -> specificity = 21 */ #x34y /* a=1 b=0 c=0 -> specificity = 100 */ #s12:not(FOO) /* a=1 b=0 c=1 -> specificity = 101 */ 

Примечание: Повторные случаи того же простого селектора позволяются и действительно увеличивают специфику.