Два селектора имеют различную специфичность. Правила, заданные в более конкретном селекторе, будут заменять правила, заданные в менее конкретном.
Правила специфичности действительно просты. При возникновении конфликта (два или более правил, задающих разные значения для одного и того же элемента), к следующим правилам обращаются в порядке :
1) В каком «пространстве» живет правило? Правило в верхнем «пробеле» автоматически побеждает против правил в нижних пробелах:
a) Устанавливается таблицей стилей пользователя с помощью
б) Устанавливается авторской таблицей стилей, с! важным
c) Устанавливается в таблице стилей браузера с помощью
г) Установить в стиле style = "" правило
e) Устанавливается таблицей стилей пользователя без!
е) Устанавливается авторской таблицей стилей без! важной
g) Устанавливается в таблице стилей браузера без! важных
2) Сколько #ids в селекторе? Селекторы с большим количеством #id автоматически выигрывают у селекторов с меньшим количеством (при условии, что они связаны в правиле № 1).
3) Сколько .classes или: псевдоклассов в селекторе? Селекторы с большим количеством классов автоматически выигрывают у селекторов с меньшим количеством (при условии, что они связаны с предыдущими правилами).
4) Сколько простых элементов в селекторе? Опять же, чем больше, тем лучше.
5) Наконец, как далеко в документе находится правило? Более поздние правила переопределяют более ранние правила, если они связаны со всеми предыдущими категориями. Это применимо внутри документа (внизу вашего CSS-файла и вверху) и между документами (любые правила во втором ed css-файле «позже», чем правила в вашем первом ed css-файле) .
Понимание специфики может помочь вам написать более простой CSS. Я почти всегда запускаю свои селекторы с ближайшим из возможных #id, потому что он одновременно ограничивает распространение селектора именно теми элементами, которые мне нужны, и автоматически переопределяют любые «глобальные» правила CSS, которые у меня могут быть установить в документе.