Обратите внимание, что

  1. данный документ является переводом документа «Assigning property values, Cascading, and Inheritance» и на данный момент находится на стадии перевода;
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

6 Присвоение значений свойствам, Каскадирование и Наследование

Содержимое


* * *

6.3 Правило @import

Правило '@import' позволяет пользователям импортировать стили из посторонних таблиц стилей. В CSS 2.1, все правила @import должны предшествовать всем остальным правилам (за исключением правила @charset, если оно присутствует). Для того, чтобы узнать в каких случаях агенты пользователей должны игнорировать правила @import смотрите раздел анализа. Ключевое слово '@import' должно указывать URI таблицы стилей, которую необходимо подключить. Также допускается указание в виде строки; строка будет интерпретирована, как будто она была представлена в виде url(...).

Пример(-ы):

Следующие строки эквивалентны по значению и иллюстрируют синтаксис '@import' (одна строка в виде "url()" и одна строка в виде обычной строки).

@import "mystyle.css";
@import url("mystyle.css");

При этом агенты пользователей могут не загружать ресурсы для неподдерживаемых медиа типов, так как авторы могут указывать тип устройства которому предназначено правило @import . Эти условные обозначения устройств для импортируемых свойств указывают через запятую типы носителей после URI.

Пример(-ы):

На примере следующих правил показано, как в правиле @import можно указывать тип устройств:

@import url("fineprint.css") print;
@import url("bluish.css") projection, tv;

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

Указанное устройство соответствует списку допустимых типов устройств в случае, если один из элементов списка типа устройств совпадает с типом используемого устройства или если указано значение 'all'.

Обратите внимание, что Медиа Запросы [MEDIAQ] указывают синтаксис списка типов устройств и определяют соответствия.

Если же таблица стилей импортируется или ссылается на некоторые части документа, то агенты пользователей должны обрабатывать (или делать вид, что они обрабатывают) каждую ссылку, как если бы ссылка указывала на отдельную таблицу стилей.

6.4 Каскад


* * *

6.4.2 !important правила

CSS устанавливает баланс сил параметров создаваемых автором и пользователем документа. По умолчанию параметры создаваемые автором имеют приоритет над стилями создаваемыми пользователем в документе (смотрим каскадное правило 3).

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

При объявлении сокращённого свойства (например, 'background') как «!important» все его субпараметры тоже объявляются как «!important».

Пример(-ы):

Первый параметр в пользовательской таблице стилей в следующем примере содержит «!important» декларацию, которая переопределяет важность данного параметра по отношению к соответствующему параметру таблицы стилей автора. Второй параметр также увеличивает важность за счёт указания «!important» декларации. Однако третье правило в пользовательской таблице стилей не имеет соответствующей декларации «!important» и, следовательно, имеет меньший приоритет, чем соответствующий параметр таблицы стилей автора (который, задал данный параметр в качестве субпараметра). Кроме того, автор повторяет третий параметр, который ранее уже был указан в качестве субпараметра с указанной декларацией «!important». Это показывает, что «!important» так же работает в пределах таблиц стилей автора.

/* Из пользовательской таблицы стилей */
p { text-indent: 1em ! important }
p { font-style: italic ! important }
p { font-size: 18pt }

/* Из таблицы стилей автора */
p { text-indent: 1.5em !important }
p { font: normal 12pt sans-serif !important }
p { font-size: 24pt }


* * *