Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Связывание таблицы стилей с XML-документом



 

Чтобы связать таблицу каскадных стилей с XML-документом, необходимо вставить в документ зарезервированную инструкцию по обработке xrnl-stylesheet. Эта инструкция по обработке имеет следующую обобщенную форму записи, где в качестве CSSFilePath задаётся местонахождение файла таблицы стилей:

<?xml-stylesheet type="text/css" href=CSSFilePath?>

 

Можно использовать полный URL, например:

 

<?xrnl-stylesrieet type="text/css"

href="http://www.my_domain.com/lnventory01.css"?>

 

Чаще используется частичный URL, который задает местонахождение относительно местонахождения XML-документа, содержащего инструкцию по обработке xml-stylesheet, например:

 

<?xml-stylesheet type="text/css" href="lnventory01.css"?>

 

(Относительный URL используется чаще, поскольку файл таблицы стилей обычно хранится в той же папке, что и XML-документ, либо в одной из вложенных папок.)

Обычно инструкция по обработке xml-stylesheet добавляется в пролог XML-документа, вслед за объявлением XML.

Возможность присоединять к XML-документу внешнюю таблицу стилей увеличивает гибкость форматирования документа. Можно полностью изменить вид документа, просто присоединив к нему другую таблицу стилей. Чтобы сделать это, достаточно всего лишь отредактировать URL в инструкции по обработке xml-stylesheet, не внося никаких других изменений в XML-документ.

При связывании таблицы стилей с XML-документом, этот документ можно открыть непосредственно в Internet Explorer - например, можно ввести URL документа или путь к файлу в поле Address (Адрес) и нажать клавишу Enter.

Или, предполагая, что Internet Explorer есть браузер, используемый по умолчанию, можно просто дважды щелкнуть на имени файла XML-документа в окне Windows Explorer (Проводник) или в окне папки. Internet Explorer откроет XML-документ и отобразит его с использованием инструкций из связанной таблицы стилей.

Если браузер не может найти файл таблицы стилей, заданный в инструкции по обработке xml-stylesheet, он отобразит текст документа с использованием своего собственного набора свойств (например, с текущими значениями гарнитуры и размера шрифта). Если XML-документ не связан с таблицей стилей (т.е. документ не содержит инструкции по обработке xml-stylesheet), то Internet Explorer отобразит исходный XML-код для документа, но не содержимое документа.



Можно включить в XML-документ более одной таблицы стилей, вставив для каждой из них инструкцию по обработке xrnl-stylesheet в начале XML-документа, например:

 

<?xml version="1.0"?>

<?xml-stylesheet type="text/css" href="Book01.css"?>

<?xml-stylesheet type="text/css" href="Book02.css"?>

<INVENTORY>

<!-- содержимое элемента Документ -->

</INVENTORY>

 

Возможность связывания с несколькими таблицами стилей позволяет хранить группы взаимосвязанных правил в отдельных файлах, а затем объединять их при создании документов определенных типов.

При установке связи с несколькими таблицами стилей, Internet Explorer объединяет правила из различных таблиц. Если отдельные таблицы стилей содержат конфликтующие правила, правила из последней связываемой с документом таблицы стилей имеют приоритет над правилами, содержащимися в предшествующих таблицах стилей.

 

Присвоение значений в таблицах каскадных стилей

 

В таблицах каскадных стилей можно присваивать значения свойствам на нескольких различных уровнях (подобно каскаду водопада, в котором поток падает, проходя по нескольким ступеням). Ниже дано описание основных уровней, на которых можно присваивать значение свойству. Уровни представлены в порядке их приоритетов - от высшего к низшему, Когда браузер готовится отобразить элемент, и значение его определенного свойства, например, font-size, конфликтует со значением, присвоенным этому элементу на других уровнях, браузер использует значение, присвоенное на наивысшем уровне приоритета.

1. Если вы присвоили значение свойству в атрибуте STYLE для определенного элемента в XML-документе, браузер использует это значение при отображении элемента. Например, он отобразит следующий элемент полужирным:



 

<TITLE STYLE="font-weight:bold">Язык HTML</TITLE>

 

2. Если свойство не установлено в атрибуте STYLE, браузер использует значение свойства, объявленного в правиле CSS с контекстуальным селектором (т.е. селектором, который определяет элемент с одним или несколькими его элементами-предками, о чем говорилось ранее в разделе «Использование контекстуальных селекторов»). Предположим, что следующий элемент является элементом Документ XML-документа:

 

<MAPS>

<CITY>

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

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

</CITY>

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

</MAPS>

 

Допустим также, что присоединенная таблица стилей содержит следующие правила:

 

CITY STATE

{font-style: normal}

STATE

{font-style: itaiic}

 

Браузер использует правило CITY STATE для форматирования элемента "Витебская область" STATE, поскольку оно имеет контекстуальный селектор, и, следовательно, имеет приоритет над правилом STATE, имеющим родовой селектор. Надпись "Витебская область" в результате будет отображена обычным шрифтом.

3. При отсутствии объявления значения определенного свойства в правиле, имеющем соответствующий контекстуальный селектор, браузер использует значение, объявленное в правиле с родовым селектором (т.е. селектором, который включает только имя элемента). Например, для второго компонента рассматриваемой таблицы стилей браузер не найдет соответствующего контекстуального правила для элемента "Гродненская область" STATE, поэтому использует родовое правило STATE, в результате чего надпись "Гродненская область" будет отображена курсивом.

4. При отсутствии объявления значения определенного свойства для элемента в родовом правиле, браузер использует установку свойства, объявленную для ближайшего элемента-предка (родителя, родителя родителя и т.д.). Например, в таблице стилей из Листинга 1.3 правило для элемента TITLE не присваивает значение для свойства font-size:

 

TITLE

{font-style: italic}

 

Следовательно, браузер будет использовать установку свойства font-size для родительского элемента BOOK (элемент BOOK является родителем для элемента TITLE в XML-документе, использующем таблицу стилей):

 

BOOK

{display: block;

margin-top: 12pt;

font-size: 10pt}

 

В результате текст элемента TITLE будет отображен с размером шрифта 10 пунктов.

Этот процесс имеет место только для наследуемого свойства. Для ненаследуемого свойства браузер будет использовать значение свойства по умолчанию (см. раздел “Наследование установок свойств” ранее в этой главе).

5. Если таблица стилей не содержит установку свойства для какого-либо родительского элемента, браузер использует свою собственную установку. Такой установкой может быть значение по умолчанию, встроенное в браузер, либо значение, заданное пользователем браузера. Например, поскольку в рассматриваемой таблице стилей из Листинга 1.3 не установлено значение для свойства font-family, браузер использует свое собственное значение этого свойства для отображения всех элементов. В Internet Explorer это шрифт Times New Roman, если только пользователь браузера не выберет другое семейство шрифтов, воспользовавшись командой Internet Options (Свойства обозревателя) из меню Tools (Сервис).

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

Основной принцип здесь следующий: в случае присвоения свойству значения, конфликтующие на различных уровнях, браузер отдает предпочтение более конкретизированному правилу. Например, установленное для элемента свойство является само по себе более конкретизированным, чем установка для родителя элемента, поэтому имеет приоритет. Этим принципом можно воспользоваться и в более сложных случаях. (Например, если дочерний элемент элемента-родителя имеет и контекстуальное, и родовое правило, браузер использует контекстуальное правило)

Порядок приоритетов не является незыблемым. Можно сделать так, что установка свойства в браузере будет иметь приоритет над установкой свойства в таблице стилей, присоединенной к XML-документу. Это дает возможность пользователям управлять форматированием (например, пользователь с ослабленным зрением может использовать увеличенный шрифт). В Internet Explorer, например, пользователь может присвоить установке свойств в браузере наивысший приоритет по отношению к установкам свойств в таблице стилей, выбрав команду Options (Свойства обозревателя) из меню Tools (Сервис), щелкнув на кнопке Accessibility (Оформление) на вкладке General (Общие) в диалоговом окне Internet Options (Свойства обозревателя) и выбрав соответствующие опции.

Что произойдет, если для определенного свойства установлены конфликтующие значения на одном и том же уровне? В таком случае браузер использует последнюю установку, которую он обработал. Например, если два родовых правила для одного элемента имеют конфликтующие установки для свойства font-style, как в следующем примере, браузер использует второе из них, поскольку оно обрабатывается последним:

 

TITLE, AUTHOR, BINDING, PRICE

{display: block;

font-size: 12pt;

font-weight: bold;

font-style: italic}

AUTHOR

{font-style: normal}

 

В этом примере элементы AUTHOR будут отформатированы обычным шрифтом, а не курсивом.

Ниже приведен порядок, в котором браузер обрабатывает правила таблицы стилей:

· при связывании нескольких таблиц стилей с документом, использующим инструкцию по обработке xml-stylesheet, браузер обрабатывает таблицы стилей в последовательности, в которой они приведены в инструкции по обработке;

· при импортировании одной или нескольких таблиц стилей в другую таблицу стилей с использованием директивы @import (см. раздел «Импорт других таблиц стилей»), браузер обрабатывает импортированные таблицы стилей перед таблицей, в которую они импортируются. Порядок обработки при этом определяется порядком импорта;

· в таблице стилей правила обрабатываются в том порядке, в котором они записаны.

Правило, согласно которому браузер использует последнюю установку свойства, противоположно правилу, применяемому XML-npo-цессором в случае наличия множественных объявлений атрибутов или примитивов. XML-процессор использует первое объявление атрибута или примитива и игнорирует все последующие.

 

Установка свойства display

 

Свойство display управляет основным способом отображения текста элемента браузером. Ему можно назначить три ключевых слова CSS:

· block. Браузер всегда помещает пустую строку перед и после текста элемента (который включает и текст, принадлежащий любым дочерним элементам). В результате текст элемента отображается в отдельном “блоке” с предшествующим текстом выше и последующим текстом ниже. Присвоение значения block позволяет форматировать текст, с применением различных свойств обрамления к блоку текста, таких как поля, рамки и отступы. Элемент block похож на абзац в программе текстового процессора, который отделен пробелами от предшествующего и последующего текста, и для которого можно задавать отступы, рамки и т.д.;

· inline (по умолчанию). Браузер не вставляет пустую строку перед или после текста элемента (если только предшествующий текст достиг правой границы окна, и браузер должен перенести текст на следующую строку). Он будет вставлять пустые строки внутри текста элемента только с целью уместить текст в окне. Текст элемента, таким образом, может быть размещен в той же строке, что и предыдущий или последующий текст. Элемент inline аналогичен группе символов внутри абзаца в программе текстового процессора;

· none. Браузер не отображает элемент. Эту установку можно использовать для элементов, несущих информацию, которую вы не хотели бы помещать на экране.

В спецификации CSS указано, что свойство display не наследуется дочерними элементами. Это так, если вы назначаете установку block для свойства display элемента. Однако элементы вполне эффективно наследуют установку none, поскольку, при назначении данной установки свойству display элемента-родителя, скрываются и дочерние элементы. Дочерние элементы элемента inline также будут элементами inline, если для них не установлено свойство display, поскольку inline является значением по умолчанию.

Предположим, вы используете следующую таблицу стилей для отображения XML-документа, представленного в Листинге 1.2 (напомним, что для изменения таблицы стилей, используемой для отображения XML-документа, следует отредактировать инструкцию по обработке xml-stylesheet в документе):

 

BOOK

{display: block;

margin-top: 12pt;

font-size: 10pt}

TITLE

{font-style: italic}

AUTHOR

{font-weight: bold}

PAGES

{display: none}

 

Поскольку свойству display элемента BOOK присвоено значение block, браузер всегда будет помещать пустую строку перед и после текста элемента. (Элемент BOOK имеет содержимое. Его текст состоит из текста, принадлежащего всем дочерним элементам.)

Поскольку таблица стилей не присваивает значения свойству display для элементов TITLE, AUTHOR, BINDING и PRICE (и эти элементы не наследуют значение свойства display от их родительских элементов), браузер воспримет их как элементы inline, что является установкой по умолчанию. Следовательно, браузер не будет помещать пустые строки между этими элементами, и — если допустить, что окно браузера имеет достаточную ширину - отобразит их все на одной строке.

Поскольку для свойства display элемента PAGES установлено значение none, браузер не отобразит этот элемент.

 

Задание ключевых слов CSS в качестве значений

 

Для многих свойств CSS вы можете — или должны - присваивать значение с использованием предопределенных ключевых слов CSS. Специфические ключевые слова, которые можно использовать, определяются особенностью свойства. Например, можно назначить свойству display одно из трех ключевых слов: block, inline или none. Свойству color можно назначить одно из 16 ключевых слов, которые описывают основные цвета, такие как red (красный), green (зеленый), yellow (желтый) или fuchsia (фуксия), как в следующем примере:

 

PARA {color: fuchsia}

 

Свойству border-style можно назначить одно из девяти ключевых слов: solid, dotted, dashed, double, groove, ridge, inset, outset или none. Пример:

 

SECTION (border-style:solid)

 


Эта страница нарушает авторские права

allrefrs.ru - 2019 год. Все права принадлежат их авторам!