Як !important впливає на специфічність?
!important не збільшує специфічність селектора, але перебиває результат каскаду, стаючи на самий верх пріоритетів. Тобто це не про «вагу» селектора, а про «силу» правила.
Як працює пріоритет із !important
Фактично !important створює окремий, найвищий рівень, вищий за специфічність. Порядок застосування правил стає таким:
!important- inline-стилі
- селектор за
id - селектор за класом, атрибутом, псевдокласом
- селектор за тегом
- стилі браузера
Приклад
p { color: blue !important; }
#text { color: red; }Хоча #text має вищу специфічність, підсумковий колір буде blue, тому що в першого правила стоїть !important.
Коли !important все ж програє
Тільки в одному випадку, якщо є інше !important з вищою вагою селектора:
p { color: blue !important; }
#text { color: red !important; }Тут переможе червоний, тому що за рівних !important далі знову вступає в силу специфічність, id сильніший за p.
Підсумок
!importantне змінює специфічність- але впливає на підсумковий пріоритет, обходячи каскад і «вагу» селектора
- при конфлікті двох
!importantпорівняння знову йде за специфічністю селектора
Цей механізм робить !important «чит-кодом», через що його й уникають у звичайній розробці.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.