Ну если даже не говорить уже о том, что просто, на то, чтобы поменять один цвет в CSS будет написано 4 строки JS, то плохо как минимум то, что мы вмешиваемся в DOM и с точки зрения производительности это значительно хуже, чем просто перезапись стилей, даже инлайном.
Так это уже совсем другая ситуация. Даже если ты подключил весь бутстрап, но не используешь те компоненты в которых импортанты, то тебе не придётся их переопределять)
Да, я это и имел в виду, когда описывал то как использует это бутстрап. Но именно по-этому я называл это «защитой от дурака», так как чисто по такому же совпадению разработчик может почему-то написать: .dropdown-menu.show { display: bock !important;}
И будет всё равно печаль.
Так, что этот способ существует, но сказать что он хороший или надежный — я бы не сказал.
Да, но я считаю, что его уместно учитывать в расчете веса селектора таким образом. Так как его приоритет может комбинироваться с обычным приоритетом селекторов по id, class, tag. Выглядит вполне уместно.
Если я бы писал плагин, который помогает такой версии страницы стать лучше, или аналогичное расширение, то с большой вероятностью использовал бы там important. Но если это просто моя вёрстка, то в принципе, могу вполне обойтись весом селектора. По крайней мере вспоминая все такие случаи, не помню исключений.
Ну опять же, то, что стили в файле записаны раньше, это еще не значит, что нам нужен импортант. У нас для этого есть вес селектора и он с этим справляется. Это как раз тот случай, в котором я бы точно не советовал использовать !important
Ну это ж тоже может породить потом important поверх important'ов. Типа: мы скрываем на маленьком размере экрана какой-то блок, а потом решаем что на всех маленьких экранах он должен быть скрыт, а на маленьком экране с соотношением сторон 4:3, например, показать. И начинается та же проблема. Случай синтетический, но вполне реальный. Кажется тут тоже можно просто на весе селекторов сделать.
Ну это ж уже следствие другой проблемы, а не импортантов. Если в проекте плохая организация кода и чтобы заменить цвет заголовка, нужно несколько часов искать все места где этот цвет назначался, то да, в таком случае используя !important ты ускоряешь процесс. Но при этом ухудшаешь и без того паршивую ситуацию)
А «быстрее» писать !important это опять же, если приводить синтетический случай. Ты его написал, показал заказчику и удалил. А если ты его написал и оставил, то это ускорение сработает ровно один раз. До следующего раза, когда тебе импортанты надо будет писать поверх импортантов и ты все равно придешь к работе с весом селекторов)
Так модуль же изолирует свои стили, и в пределах модуля ты можешь переопределять все что тебе нужно обычным способом. Я не совсем понял кейс, когда там нужен импортант.
Да, спасибо. Я про этот случай умышленно не писал, чтобы дополнительно не путать. Но это всё сводится к тем ситуациям, о которых я сказал в конце. Что это исключения, а не регулярное использование. И как раз чаще всего и используется в плагинчиках и расширениях.
Да, так и работает. Я про это не писал, так как написал сноску про то, что читая эту статью вы уже должны быть знакомы с тем как работает специфичность)
Так это уже совсем другая ситуация. Даже если ты подключил весь бутстрап, но не используешь те компоненты в которых импортанты, то тебе не придётся их переопределять)
И будет всё равно печаль.
Так, что этот способ существует, но сказать что он хороший или надежный — я бы не сказал.
На деле это ж скорее 1.0.0.0.0.
Где каждая цифра это:
!important | inline | id | class | tag
Участие в этой схеме инлайновых стилей тоже спорная история, но если они учитываются в расчете веса, то так будет вполне разумно считать
А «быстрее» писать !important это опять же, если приводить синтетический случай. Ты его написал, показал заказчику и удалил. А если ты его написал и оставил, то это ускорение сработает ровно один раз. До следующего раза, когда тебе импортанты надо будет писать поверх импортантов и ты все равно придешь к работе с весом селекторов)