Делает!важное правило переопределить медиа-запросы?
Так, например, если бы у меня был медиа-запрос, а также некоторые регулярные CSS с !важное правило на вещи, это повлияет?
например:
a{
color:#0000FF!important;
}
@media (max-width: 300px){
a{
color:#FF0000;
}
}
2 ответов
медиа-запросов и @media
правила не влияют на поведение !important
в любом случае, потому что они не имеют никакого влияния на любой части каскада. (По расширению это также означает вы не можете использовать @media
at-rule для "удаления"!important
флаг, даже если вы используете более конкретный селектор.)
когда ваш медиа-запрос сопоставлен, браузер видит следующее:
a{
color:#0000FF!important;
}
a{
color:#FF0000;
}
и когда это не так, он видит это:
a{
color:#0000FF!important;
}
оба случая приводят к тому, что первый набор правил имеет приоритет, но не препятствуют, например,!important
объявление с более конкретным селектором или !important
встроенный стиль, от переопределения его.
вот еще один пример, который иллюстрирует это лучше:
a{
color:#0000FF!important;
}
@media (max-width: 300px){
a:link,a:visited{
color:#FF0000!important;
}
}
когда медиа-запрос сопоставлен, браузер видит это:
a{
color:#0000FF!important;
}
a:link,a:visited{
color:#FF0000!important;
}
это приводит к тому, что второе правило имеет приоритет, потому что оно имеет более конкретное селектор (по крайней мере для a
элементы, которые соответствуют псевдо-классу). Если он не соответствует медиа-запросу, то только первое правило будет иметь какой-либо эффект, как указано выше.
Да. Обычно, если вам нужно использовать !important
, что-то можно улучшить в коде. Здесь вы можете видеть, что он переопределяет изменение медиа-запросов:JS Fiddle
Если убрать !important
сформировать код, медиа-запрос работает так, как задумано:JS Скрипка работает должным образом
рекомендуется читать, когда использовать !important
:
При Использовании !важен правильный выбор