В настоящее время я использую книгу CSS Mastery: Advanced Web Standards Solutions .
В главе 1, стр. 16 говорится:
Чтобы вычислить как конкретное правило, каждому типу селектора присваивается числовое значение. Специфика правила затем вычисляется путем суммирования значения каждого из его селекторов. К сожалению, специфика не вычисляется в базе 10, а в высоком, неуказанном, базовом числе. Это делается для того, чтобы очень специфичный селектор, такой как селектор идентификаторов, никогда не был переопределен множеством менее специфических селекторов, таких как селектор типов.
(выделение мое) и
Специфика селектора разбивается на четыре составляющих уровня: a, b, c и d.
- , если стиль является встроенным, тогда a = 1
- b = общее количество селекторов id
- c = число классов, псевдокласса и селекторов атрибутов
- d = число типов селекторов и селекторов псевдоэлементов
Далее говорится, что вы можете часто делать вычисления в базе 10, но только в том случае, если все столбцы имеют значения меньше 10.
В ваших примерах идентификаторы не стоят 100 баллов; каждый из них стоит
[0, 1, 0, 0]
очков. Следовательно, один id превосходит 15 классов, потому что[0, 1, 0, 0]
больше, чем[0, 0, 15, 0]
в системе с высоким номером.