Следует ли мне избегать использования! Важное в CSS? - PullRequest
11 голосов
/ 07 августа 2010

Иногда !important полезно, например, если я определил общий стиль для всех ссылок на сайте (скажем, селектор a), но когда я хочу изменить некоторые правила, у меня есть следующие варианты:

  • Использовать более специфичный (более длинный) селектор
  • Использование !important

Какой способ лучше и может быть, есть некоторые рекомендации?

Ответы [ 3 ]

16 голосов
/ 07 августа 2010

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

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

Когда сталкиваетесь с ситуацией, когда !important выглядит привлекательно - или, что еще хуже, ситуация, когда она уже используется и распространяется - предпочтите реорганизовать свой CSS, если можете,(Честно говоря, если вам нужно !important вне таблицы стилей пользователя, это обычно потому, что ваши селекторы уже слишком специфичны, и / или вы не пользуетесь C в CSS.) Вам лучше определитьваши базовые стили максимально приближены к элементам html или body, а когда вы хотите переопределить, используйте как можно меньше специфичности.Таким образом, у вас есть много места для внесения изменений.Обычно есть причина, по которой вы хотите переопределить стиль, и эти случаи довольно часто сводятся к имени класса, определенному разделу страницы (читай: конкретному родительскому элементу) и т. Д.

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

2 голосов
/ 07 августа 2010

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

Посмотрите на:

Важность! Важной в CSS

2 голосов
/ 07 августа 2010

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

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

Так что делайте все возможное.

...