Включение таблиц стилей в документ
В DOM 2 добавлена поддержка динамических таблиц стилей произвольного типа, хотя на сегодняшний день единственным языком таблиц стилей является CSS. Как указано в этом пункте, в HTML таблица стилей может быть либо внешней (и задаваться элементом LINK), либо внутренней (и задаваться элементом STYLE).
В XML таблицы стилей могут быть только внешними и задаются директивой xml-stylesheet, имеющей следующий вид:
Синтаксис: <?xml-stylesheet <em>атрибуты</em>?> Атрибуты: href = CDATA #REQUIRED (URI таблицы стилей) type = CDATA #REQUIRED (тип файла таблицы стилей) title = CDATA #IMPLIED (титул таблицы стилей) media = CDATA #IMPLIED (список устройства отображения) charset = CDATA #IMPLIED (кодировка таблицы стилей) alternate = (yes|no) "no"
Здесь атрибуты href, title, media и charset в точности соответствуют атрибутам HTML-элемента <LINK rel="StyleSheet">. Атрибут alternate="yes" означает, что данная директива имеет семантику элемента <LINK rel="Alternate StyleSheet">. Примеры:
<?xml-stylesheet href="mystyle.css" type="text/css" media="screen"?> <?xml-stylesheet alternate="yes" href="mystyle.css" media="print" type="text/css"?>
Примечание. Поскольку значением атрибута href является URI общего вида, ссылка на таблицу стилей может быть относительным URI, содержащим закладку. В частности, это может быть ссылка на закладку, расположенную в том же XML-документе, т. е. таблица стилей может содержаться в самом документе.
Описанные в этой главе интерфейсы не являются обязательными для реализации DOM. Если реализация их поддерживает, то рекомендуется, чтобы ее метод DOMImplementation.hasFeature возвращал true при соответствующем запросе.
В MSHTML поддержка стилей отличается от стандарта, поэтому всюду после описания стандартных методов и свойств мы указываем на особенности их реализации в Internet Explorer.
Списки устройств: интерфейс MediaList
Поддержка : | | Не поддерживается. | | | Соответствует стандарту. |
Интерфейс MediaList соответствует списку 78&p=3#5устройств отображения, к которым применима таблица стилей. Он представляет собой массив строк, содержащих имена устройств, и имеет следующие свойства и методы:
Свойства интерфейса MediaListСвойство | Изменяемое | Модель | Описание |
---|
length | Нет | DOM 2 | Размер списка устройств. | mediaText | Да | DOM 2 | Текстовое представление списка устройств. |
Методы интерфейса MediaListМетод | Модель | Описание |
---|
appendMedium | DOM 2 | Добавляет новое устройство в конец списка. | deleteMedium | DOM 2 | Удаляет заданное устройство из списка. | item | DOM 2 | Возвращает элемент списка с заданным номером. |
Свойство length
Синтаксис: объект.length Изменяемое: нет
Поддержка : | | Не поддерживается. | | | Соответствует стандарту. |
Свойство length возвращает количество элементов в данном списке устройств.
Свойство mediaText
Синтаксис: объект.mediaText Изменяемое: да Иcключения: SYNTAX_ERR, NO_MODIFICATION_ALLOWED_ERR (при записи)
Поддержка : | | Не поддерживается. | | | Соответствует стандарту. |
Свойство mediaText позволяет получать или задавать список устройств отображения в виде текстовой строки, состоящей из имен устройств, разделенных запятыми и, возможно, пробелами. Пример:
document.styleSheets[0].media.mediaText = "screen, print";
Метод appendMedium
Синтаксис: объект.appendMedium(newMedium) Аргументы: newMedium - выражение типа DOMString Иcключения: INVALID_CHARACTER_ERR, NO_MODIFICATION_ALLOWED_ERR
Поддержка : | | Не поддерживается. | | | Не поддерживается. |
Метод appendMedium добавляет устройство newMedium в конец списка устройств. Если это устройство уже есть в списке, то оно будет сначала удалено из него, а затем добавлено. Пример:
document.styleSheets[0].media.appendMedium("print");
Метод deleteMedium
Синтаксис: объект.deleteMedium(oldMedium) Аргументы: oldMedium - выражение типа DOMString Иcключения: NOT_FOUND_ERR, NO_MODIFICATION_ALLOWED_ERR
Поддержка : | | Не поддерживается. | | | Не поддерживается. |
Метод deleteMedium удаляет устройство oldMedium из списка устройств. Если этого устройства нет в списке, то генерируется исключение. Пример:
document.styleSheets[0].media.deletedMedium("print");
Метод item
Синтаксис: объект.item(index) Аргументы: index - числовое выражение Результат: DOMString или null Иcключения: нет
Поддержка : | | Не поддерживается. | | | Соответствует стандарту. |
Метод item возвращает элемент списка устройств с номер index. Допустимые значения индекса лежат в диапазоне от 0 до объект.length-1 включительно. Если index выходит за пределы этого диапазона, то возвращается null. Пример:
alert(document.styleSheets[0].media.item(1));
JavaScript позволяет задать обращение к элементам списка более компактным образом. Например, приведенный пример можно записать и так:
alert(document.styleSheets[0].media[1]);
1 2 3 4 5 6 7
8 8 8
|