Что !important
значит в CSS?
Это доступно в CSS 2? CSS 3?
Где это поддерживается? Все современные браузеры?
Что !important
значит в CSS?
Это доступно в CSS 2? CSS 3?
Где это поддерживается? Все современные браузеры?
Ответы:
По сути, это означает, что это говорит; что «это важно, игнорируйте последующие правила и любые обычные проблемы специфичности, применяйте это правило!»
При обычном использовании правило, определенное во внешней таблице стилей, отменяется стилем, определенным в head
документе, который, в свою очередь, отменяется встроенным стилем внутри самого элемента (при условии равной специфичности селекторов). Определение правила с помощью !important
«атрибута» (?) Отбрасывает обычные проблемы в отношении «более позднего» правила, переопределяющего «более ранние» правила.
Кроме того, обычно более конкретное правило переопределяет менее конкретное правило. Так:
a {
/* css */
}
Обычно отменяется:
body div #elementID ul li a {
/* css */
}
Поскольку последний селектор более специфичен (и, как правило, не имеет значения, где находится более специфичный селектор (во head
внешней таблице стилей или во внешней), он все равно будет переопределять менее специфичный селектор (атрибуты встроенного стиля всегда будут переопределите конкретный селектор «more-» или «less-», так как он всегда более конкретный.
Однако, если вы добавите !important
в объявление CSS менее специфичного селектора, оно будет иметь приоритет.
Использование !important
имеет свои цели (хотя мне трудно думать о них), но это похоже на использование ядерного взрыва, чтобы остановить лис, убивающих ваших цыплят; да, лисы будут убиты, но и куры тоже. И окрестности.
Это также делает отладку вашего CSS кошмаром (из личного, эмпирического, опыта).
important!
(важно НЕТ)
Правило! Важное - это способ сделать ваш CSS каскадным, но при этом всегда используйте правила, которые вы считаете наиболее важными. Правило, которое имеет свойство! Важное, всегда будет применяться независимо от того, где это правило появляется в документе CSS.
Итак, если у вас есть следующее:
.class {
color:red !important;
}
.outerClass .class {
color:blue;
}
будет применяться правило с важным (не считая специфики )
Я считаю, что !important
появился в CSS1, поэтому каждый браузер поддерживает его (от IE4 до IE6 с частичной реализацией, IE7 + полный)
Кроме того, это то, что вы не хотите использовать довольно часто, потому что, если вы работаете с другими людьми, вы можете переопределить другие свойства.
!
символ НЕ в некоторых языках, но теперь она понятнее.
!important
. CSS достаточно отличается от других языков, поэтому легко забыть, как использовать определенные вещи.
important!
, а может быть IMPORTANT!
, а не !important
. Интересно, кто-нибудь (кто мог бы прочитать это) знает, почему они определили это с пунктуацией перед? Очевидно, уже слишком поздно, чтобы изменить это сейчас.
!important
является частью CSS1.
Браузеры, поддерживающие его: IE5.5 +, Firefox 1+, Safari 3+, Chrome 1+.
Это означает, что-то вроде:
Используйте меня, если вокруг нет ничего более важного!
Не могу сказать, что лучше.
!important
не ограничивается только Safari 3+; он поддерживал его с самого начала, как и все другие браузеры, отличные от IE. IE понимает его начиная с версии 4, но поддерживает только без ошибок, начиная с версии 7.
Он используется для влияния на сортировку в каскаде CSS, когда сортировка по происхождению завершена. Это не имеет ничего общего со спецификой, как указано здесь в других ответах.
Вот приоритет от низшего к высшему:
После этого имеет место специфика для правил, все еще имеющих палец в пироге.
Ссылки:
!important
это модификатор каскадного порядка developer.mozilla.org/en-US/docs/Web/CSS/Cascade (см. Таблицу для справки).
Это изменяет правила переопределения приоритета каскадов CSS. Смотрите спецификацию CSS2 .