9.3 Внешние таблицы стилей

Авторы могут отделить таблицы стилей от основных документов HTML. Это даёт следующие преимущества:

  • авторы и менеджеры Web-сайтов могут разделять использование таблиц стилей среди нескольких документов (и сайтов);
  • авторы могут изменять таблицы стилей без изменения самих документов;
  • ПА могут выборочно загружать таблицы стилей (в зависимости от media-дескриптора).

Основные и альтернативные таблицы стилей

HTML позволяет ассоциировать любое число внешних таблиц стилей с документом. Язык таблицы стилей определяет, сколько внешних таблиц стилей взаимодействует с документом (например, «каскадные» правила CSS).

Авторы могут определить несколько взаимоисключающих таблиц стилей, называемых альтернативными таблицами стилей. Пользователь может сделать выбор, в зависимости от своих предпочтений. К примеру, автор может определить одну таблицу стилей для малого экрана, а другую — для слабовидящих (напр., крупные шрифты). ПА должны предоставить пользователю возможность выбора из нескольких таблиц стилей.

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

Авторы могут группировать несколько альтернативных таблиц стилей (включая основную авторскую) под одним именем стиля. Если пользователь выбирает именованный стиль, ПА должен применить все таблицы стилей с этим именем. ПА не должны применять альтернативные таблицы стилей с другим именем стиля. В разделе спецификация внешней таблицы стилей объясняется, как именовать группу таблиц стилей.

Авторы также могут определить постоянные\persistent таблицы стилей, которые обязаны применяться ПА в дополнение к любой альтернативной таблице стилей.

ПА обязаны учитывать media-дескрипторы при использовании любой таблицы стилей.

ПА должны также давать пользователю возможность полностью отключить авторские таблицы стилей. В этом случае, ПА обязан не применять любую, постоянную или альтернативную, таблицу стилей.

Спецификация внешней таблицы стилей

Авторы определяют внешнюю таблицу стилей со следующими атрибутами элемента LINK:

  • href указывает на расположение файла таблицы стилей. Значением href является URI;
  • значение атрибута type указывает язык связанного ресурса (таблицы стилей). Это позволяет ПА избегать загрузки таблиц стилей для не поддерживаемого языка таблиц стилей;
  • определить, является таблица стилей постоянной, основной или альтернативной:
    • чтобы сделать таблицу постоянной, установите атрибут rel в «stylesheet» и не устанавливайте атрибут title;
    • чтобы сделать таблицу основной, установите атрибут rel в «stylesheet» и именуйте таблицу с помощью атрибута title;
    • чтобы сделать таблицу альтернативной, установите атрибут rel в «alternate stylesheet» и именуйте таблицу с помощью атрибута title.

ПА должен предоставлять пользователю возможность видеть список альтернативных стилей и выбрать из него. Значение атрибута title рекомендуется как название каждого пункта выбора.

В этом примере мы сначала определяем постоянную таблицу стилей, находящуюся в файле mystyle.css:

<LINK href="mystyle.css" rel="stylesheet" type="text/css">        

Установка атрибута title делает её авторской основной:

<LINK href="mystyle.css" title="compact" rel="stylesheet" type="text/css">        

Добавление ключевого слова «alternate» к атрибуту rel делает её альтернативной таблицей стилей:

<LINK href="mystyle.css" title="Medium" rel="alternate stylesheet" type="text/css">        

Дополнительную информацию о таблицах стилей см. раздел гиперссылки и внешние таблицы стилей.

Авторы могут использовать элемент META для установки основной таблицы стилей документа. Например, чтобы установить основную таблицу стилей в «compact» (см. предыдущий пример), авторы могут включить следующую строчку в HEAD:

<META http-equiv="Default-Style" content="compact">        

Основная таблица стилей может быть специфицирована заголовками HTTP. Предыдущее объявление META эквивалентно заголовку HTTP:

Default-Style: "compact"       

Если два или более объявления META или заголовка HTTP определяют основную таблицу стилей, самая последняя имеет приоритет. Заголовки HTTP появляются раньше, чем HEAD документа.

Если два или более элемента LINK определяют основную таблицу стилей, первая таблица имеет преимущество.

Основная таблица стилей, определённая в META или в заголовке HTTP, имеет преимущество перед таблицами, определёнными в элементе LINK.