Статьи

! важный действительно полезный (в таблицах стилей печати)

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

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

Хорошо, пока все хорошо. Однако, когда мы создадим таблицу стилей для печати, мы обнаружим недостаток в нашем плане: когда вы используете JavaScript для анимации HTML-элементов, вы неизбежно заканчиваете тем, что изменяете атрибут style элементов. В нашем слайд-шоу JavaScript изменил position и opacity изображений, поэтому за один раз отображается только одно. Когда мы отправляемся на печать страницы галереи, хотя нам нужен один столбец изображений, в итоге мы печатаем только одно изображение. Это потому, что вы не можете указать целевой медиа-тип для CSS, объявленный в атрибуте style элемента; Вы не можете сказать, что все стили, объявленные в атрибуте style , предназначены только для screen .

Так что вам нужен способ указать стили печати, которые могут переопределять встроенные стили. Есть только один способ сделать это !important В таблице стилей печати измените position и opacity, элементов изображения и добавьте !important :

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

Это действительно так; Я нашел законное применение для !important и хотел поделиться им.