xoma2
@xoma2
Программист

Частое использование important это нормально?

Частое использование important это нормально, собственно?
  • Вопрос задан
  • 3356 просмотров
Решения вопроса 2
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Скажем так — каждое появление !important в коде требует объяснения. Ещё раз повторю — каждое.

Использование любого повышения приоритета в проектах, будь то !important или атрибут style (что даёт одинаковое повышение), или сразу оба (ахтунг!), или id (меньше по силе, чем любое из предыдущих) — всё это требует объяснений. Почему?

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

#content li{
	list-style: none !important;
}


И за такие фокусы надо отрубать руки. Да. Или лишать премии. Но лучше отрубать. Шучу. Только одну.
Ответ написан
Комментировать
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Нет.
Приведу аналогию, вот есть у Вас файл, предположим «Презентация.pdf». Первый раз Вы его назвали нормально, когда исправили, назвали «Презентация_испр.pdf», потом шеф внес новые коррективы и появляется файл «Презентация_испр_+шеф.pdf», после чего Вы еще раз правите, добавляя пару страниц и получается «Презентация_новейшая.pdf», потом «Презентация_последняя.pdf», «Презентация_14.12.2015.pdf» и так далее.
А всего-то надо было назвать «Презентация_rev.0.pdf»
Здесь примерно то же самое, Вы через какое-то время начнете путать, что и где Вы сделали с помощью important, а что просто наследуется. И так или иначе все равно придете к тому, что чтобы один important перекрывал другой, надо расположить классы в нужном порядке.
Но лучше делать это сразу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
sanchezzzhak
@sanchezzzhak
Ля ля ля...
нет, особенно в базовой верстке.
Ответ написан
Мое мнение, с которым, возможно, многие не согласятся: important - это инструмент, которым, естественно, можно пользоваться. Но, как и любым инструментом, пользоваться им нужно с умом. Important придает правилу максимальный приоритет и никогда и никем не перекрывается. Это может привести к проблемам при наследовании правил, при назначении свойств элемента из jacascript и т.д. Однако, именно это иногда может быть очень полезным. Приведу пример:

HTML:
<div class="block block--removable">
    <div class="block--removable__remove-button">&times;</div>
    <div class="block__content"></div>
</div>

CSS:
.block--removable {
  position: relative;
  padding-right: 10px !important;
}
.block--removable__remove-button {
  position: absolute;
  top: 0;
  right: 0;
}


В этом примере есть правило, обеспечивающее отступ для крестика. Этот отступ должен присутствовать всегда, в любых условиях, иначе верстка поедет. Для этого оправдано использование important.

Important не стоит использовать для перекрытия одного свойства CSS другим, лучше в таком случае повышать приоритет правила другими способами. Вот отличная статья про приоритеты в CSS: htmlbook.ru/samcss/kaskadirovanie
Ответ написан
kissarat
@kissarat
Node.js
Это костыль!
Ответ написан
Комментировать
А можно ли считать "обоснованным" использование сего стиля в случае универсального класса, к примеру:
.nomargin {
    margin-right:0 !important;}

Ситуация, когда есть множество блоков на разных страницах и все они обтекают другу друга. Нужно выделять последний на страничке блок и делать его "margin-right:0". Не прописывать же одно и тоже каждому классу каждой странички. Или есть более "прямые" пути?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы