Когда не работает CSS! Важное объявление? - PullRequest
24 голосов
/ 10 октября 2008

Мне интересно, может ли кто-нибудь добавить авторитетную справочную сводку о том, когда объявление! Важные в CSS не работает для переопределения встроенных стилей.

Ответы [ 3 ]

16 голосов
/ 10 октября 2008

Существует множество факторов, определяющих, какие стили перекрывают друг друга. Чем ниже объявление стиля появляется в каскаде , а более конкретно оно предназначено для элемента, тем больше оно будет весить против других стилей.

Это стандарт CSS2 для наследования стилей:

  1. Если каскад приводит к значению, используйте его.
  2. В противном случае, если свойство наследуется, используйте значение родительского элемент, как правило, вычисленное значение.
  3. В противном случае используйте начальное значение свойства. Начальная стоимость каждое свойство указано в определение свойства.

Внутренне браузер вычислит специфичность правила в соответствии со стандартом. Объявление! Важное добавит вес правилу, но динамическое назначение атрибута стиля часто будет иметь приоритет, потому что оно обычно задается более строго ..

12 голосов
/ 10 октября 2008

Ну, до сих пор исследования показывают:

  • IE7 поддерживает! Важный.
  • Поддержка FireFox 2 и 3! Важно.
  • IE6 поддерживает! Важно в режиме соответствия стандартам.

Однако IE6 (возможно, IE7) не поддерживает! Важный в в этом случае :

someselector {
  property: value !important;
  same-property: another-value;
}

Будет использовано второе значение (последнее в списке).

Это подтверждается этой страницей :

В Internet Explorer 6 и более ранних версиях, если появляется важная декларация перед обычным объявлением для то же свойство в том же блок декларации, нормальный объявление перезапишет важная декларация.

Internet Explorer 6 и 7 дают Важность декларации, когда незаконный идентификатор используется вместо ключевое слово важно, а не игнорируя декларацию, поскольку они должен.

Комментарий Gizmo гласит, что Safari и Opera поддерживают! Важный.

1 голос
/ 10 октября 2008

Я уверен, что не все браузеры распознают! Но не могу вспомнить, какие из них делают с моей головы. Проверим и свяжемся с вами.

[EDIT] Я могу подтвердить, что IE6 и более ранние версии не распознают! Важно (если браузер не находится в режиме соответствия стандартам - не по умолчанию)

Вы можете использовать! Важное, чтобы переопределить встроенное правило. Но также помните, что встроенные правила могут быть помечены как важные!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...