Когда использовать «! Важно», чтобы сохранить день (при работе с CSS) - PullRequest
10 голосов
/ 11 января 2010
#div p {
    color: red !important;
}
...
#div p {
    color: blue;
}

Я понимаю, как работает !important, в этом случае div будет отображаться красным, потому что теперь он имеет приоритет (! Важный). Но я все еще не могу найти подходящую ситуацию для его использования. Кто-нибудь знает какой-нибудь пример, где !important спасает день?

Ответы [ 7 ]

15 голосов
/ 11 января 2010

Учтите это:

#someElement p {
    color: blue;
}

p.awesome {
    color: red;
}

Как сделать так, чтобы awesome абзацы всегда становились красными, даже внутри #someElement?Без !important первое правило будет более специфичным и победит второе правило.

11 голосов
/ 11 января 2010

Только в крайнем случае! Это потому, что после его использования трудно переопределить его. Мои эмпирические правила:

  • Никогда использовать! Важно для всего сайта css.
  • Только использовать! Важный для css для конкретной страницы, который переопределяет общесайтовый или внешний css (например, из ExtJ или YUI).
  • Никогда не используйте! Важно, когда вы пишете плагин / мэшап.
  • Всегда ищите способ использовать специфичность, прежде чем даже подумать! Важно
3 голосов
/ 11 января 2010

!important сохраняет день в тех случаях, когда вы не управляете выводом HTML, и он отображает атрибут style=''. Вспомните ASP.NET и другие фреймворки.

Единственный способ изменить этот стиль - использовать javascript или пометить правило CSS как более важное!

1 голос
/ 11 января 2010

! Важный полезен, когда вы работаете с чужим кодом и не можете переопределить эффект, просто используя более конкретные селекторы. Когда меня просят зайти и добавить на странице или небольшом наборе страниц существующий сайт, я должен включить существующие таблицы стилей, но не могу их редактировать (либо из-за отсутствия доступа, либо из-за просачивания эффект сломал бы другие вещи), вот где! пригодится. В противном случае вы должны использовать специфичность селектора для переопределения поведения.

1 голос
/ 11 января 2010

Кроме того, !important игнорируется в IE6 / 7. Таким образом, вы можете использовать его как IE6 / 7 взломать .

0 голосов
/ 11 января 2010

не используйте декларацию! Important, если вы сначала не попробовали все остальное, и помните о любых недостатках. Если вы используете его, то, возможно, имеет смысл, если возможно, поместить комментарий в ваш CSS рядом с любыми переопределяемыми стилями, чтобы обеспечить лучшую поддержку кода.

0 голосов
/ 11 января 2010

Если ваша страница содержит несколько CSS-файлов, CSS-код, написанный вами, и дополнительный CSS-код, поставляемый вместе с программным обеспечением, написанным другими сторонами, вы можете захотеть пометить часть вашего CSS-кода! Важно, чтобы «гарантировать», что он не будет переопределен CSS из других включенных файлов.

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