Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_XML.doc
Скачиваний:
16
Добавлен:
03.05.2019
Размер:
3.94 Mб
Скачать

5.5. Использование контекстуальных селекторов

В селекторе можно предварить имя элемента именами одного или нескольких элементов-предков (родительский, родительский плюс родительский родителя и т.д.), и правило будет применено только к элементам с этим именем, которые являются вложенными подобным образом. Селектор, который включает один или несколько элементов-предков, называется контекстуальным (contextual) селектором. Селектор, который не включает имен элементов-предков (подобно вышерассмотренным), называется родовым (generic) селектором.

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

Предположим, что следующий элемент является корневым элементом XML-документа:

<MAPS>

<CITY>

<NAME>Витебск</NAME>

<STATE>Витебская область</STATE>

</CITY>

<STATE>Гродненская область</STATE>

</MAPS>

Следующие правила в присоединяемой таблице стилей заставят браузер отформатировать “ Витебская область ” обычным шрифтом, a “ Гродненская область ” - курсивом:

CITY STATE

{font-styte: normal}

STATE

{font-style: italic}

Хотя содержимое “ Витебская область ” элемента STATE отвечает обоим контекстуальным селекторам в правиле CITY STATE и родовому селектору в правиле STATE, селектор CITY STATE является более конкретным и, следовательно, имеет приоритет.

Не следует помещать запятые между именами элементов в контекстном селекторе. В противном случае правило будет применено ко всем элементам, но не к последнему дочернему элементу в списке.

5.6. Использование атрибута style

В XML-документе можно использовать специальный атрибут STYLE вместо того, чтобы устанавливать одно или несколько свойств отдельного элемента в таблице стилей. Если значение свойства, установленного с помощью атрибута STYLE, конфликтует со значением свойства, установленного в таблице стилей, установка с помощью атрибута STYLE имеет приоритет. Таким образом, атрибут STYLE является удобным средством, чтобы переустановить для определенного элемента значение свойства, присвоенное для типа элемента в присоединенной таблице стилей. Тем не менее, использование атрибута STYLE нарушает принцип CSS -хранения информации о форматировании отдельно от определения содержимого документа и структуры XML-файла.

Чтобы установить одно или несколько значений свойств, включите объявления в значение атрибута STYLE в виде строки, заключенной в кавычки, отделяя индивидуальные объявления точкой с запятой, как это делается в объявлении блока в CSS. Например, таблица стилей в Листинге 1.3 задает для элементов TITLE курсивное начертание с размером шрифта в 10 пунктов. Однако, если включить следующий атрибут STYLE в начальный тег определенного элемента TITLE в документе, этот элемент будет отображен шрифтом normal (не курсивом), а размер шрифта составит 14 пунктов:

<TITLE STYLE='font-style: normal; font-size: 14pt'>

Приключения Гекльбери Финна

</TITLE>

Для валидных документов необходимо объявить атрибут STYLE в DTD перед его использованием. Это можно сделать, например, следующим образом:

<!ATTUST TITLE STYLE CDATA#IMPLJED>