Нужен ли !important в CSS

Старый добрый !important зачастую подвергается вполне обоснованной критикой со стороны CSS сообщества. Он причиняет довольно много неудобств, создает кошмар наяву в особо сложных случаях. Я стараюсь не использовать этот оператор при верстке. Однако есть таки ему одно хорошее применение — для стилей для печати.

Допустим нам нужно сделать галерею. Мы размещаем все изображения в ненумерованном списке, а затем с использованием JavaScript и jQuery создаем разные эффекты переходов между картинками. При этом видимой остается лишь одна из набора. Если отключить яваскрипт — будут видны все изображения водин столбец, что, в общем-то тоже вполне сносно. Проблемы начинаются, когда мы решим распечатать страницу с такой галерей.

Чтобы оживить изображения в галерее мы использовали javascript, который изменяет непосредственно стиль элемента. Естественно, этот стиль будет учитываться в первую очередь. Мы можем указать при подключении CSS файла стоит ли его использовать для печати или нет, с инлайновыми стилями что-либо сделать сложно. Вот тут и приходит на помощь к нам тот самый !important. Его использование в стилях, применяемых только для печати, дает возможность перебить яваскриптовские стили и нормально распечатать галерею в виде стобца фотографий (ну или строки).
Например, можно воспользоваться следующим кодом:

  1.  img.gallery {   
  2.    position: static !important;   
  3.    opacity: 1 !important;   
  4.  }

Здесь !important по-настоящему нужен и полезен. А применяете ли вы этот оператор?

Запись опубликована в рубрике HTML & CSS с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">