Ваши заявления применяются в зависимости от того, насколько специфичны они.
За MDN - Специфичность :
Специфичность - это средство, с помощью которого браузеры решают, какие значения свойств CSS являются наиболее релевантными для элемента и, следовательно, будутприменяться
Удельный вес - это вес, который применяется к данному объявлению CSS и определяется номером каждого типа селектора в соответствующем селекторе.
Приведенная выше ссылка также включает факторы, которыеопределить специфичность:
Следующий список типов селекторов увеличивается в зависимости от специфики:
Селекторы типов (например, h1
) и псевдоэлементы (например,::before
).
Селекторы классов (например, .example
), селекторы атрибутов (например, [type="radio"]
) и псевдоклассы (например, :hover
).
Селекторы ID (например, #example
).
Универсальный селектор (*
), комбинаторы (+
, >
,~
, ' '
) и псевдо-класс отрицания (:not()
) не влияют на специфичность.(Однако селекторы, объявленные внутри :not()
, делают.)
CSS выбирает, какие правила применять, основываясь на нескольких условиях.С учетом правил, применимых к одному и тому же элементу, они рассматриваются в следующем порядке:
1.!important
span { color: red; } /* base */
#mySpan { color: blue; } /* specific */
span { color: green !important; } /* important */
<span id="mySpan" style="color: purple;">Example</span>
2.Встроенные стили
span { color: red; } /* base */
#mySpan { color: blue; } /* specific */
<span id="mySpan" style="color: purple;">Example</span>
3.Специфичность
span { color: red; } /* base */
#mySpan { color: blue; } /* specific */
<span id="mySpan">Example</span>
4.Последний объявленный
span { color: red; } /* base */
span { color: yellow; } /* last applied */
<span>Example</span>
Обычно лучше избегать использования !important
везде, где это возможно.Если вы небрежно бросите их, может наступить момент, когда вам на самом деле потребуется переопределить его, но вы уже использовали свой наивысший порядок старшинства.