Опубликован: 08.08.2007 | Доступ: свободный | Студентов: 1670 / 177 | Оценка: 3.86 / 3.76 | Длительность: 11:46:00
Специальности: Программист
Лекция 11:

Дизайн документов XML

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >

Языки, основанные на правилах

Большинство языков стилей основано на правилах. Каждое правило состоит из двух разделов:

  • Раздел сравнения образцов
  • Раздел действий

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

Раздел действий - это небольшая процедура или шаблон

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

Таблица стилей CSS

Этот язык напоминает команды стиля, основанные на языке HTML, и спецификацию реализовать очень просто.

Атом CSS: ячейка

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

Как связать элементы документа XML с правилами CSS

Поняв, что язык CSS описывает мир в виде ячеек, рассмотрим, каким образом можно связать с этими ячейками элементы XML. Ответ: с помощью правил. Правила состоят из группы свойств, связанных с одним или несколькими типами элементов. Каждое правило содержит раздел сравнения и процедурный раздел (или раздел действия). В языке CSS раздел сравнения называется также селектором, а процедурная часть - коллекцией свойств. Следовательно, язык CSS основан на правилах. Взгляните на пример правила CSS:

Раздел сравнения 
или селектор	Процедура или свойства

Имя
 	{
font-family: Arial, Helvetica;
color: blue;
display: block;
padding-bottom: 0.5 px;
padding-top: 0.5 px;
}

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

При визуализации CSS чрезвычайно зависит от структуры документа. Часто дерево объектов форматирования идентично дереву документа. В принципе таблицы стилей CSS ассоциируют имеющие специфические свойства объектов форматирования CSS с каждым элементом XML.

Визуальная модель CSS

В языке CSS имеется два основных объекта форматирования:

  • Блок
  • Встроенный объект

Если говорить об отображаемых на экране элементах, то следует указать еще три:

  • Плавающий объект
  • Список
  • Таблица

Здесь можно провести сравнение с таблицей, имеющей определенные специфические характеристики: у нее могут быть заголовки, ячейки, строки и столбцы. Однако модель таких объектов не согласуется с CSS из-за различий в методах ее декларации. Так, хотя блоковые и встроенные потоковые объекты являются значениями свойства display, плавающий объект сам представляет собой свойство, которое принимает различные значения. Таким образом, синтаксис CSS отличается от визуальной модели.

Блок: значение (свойства display )

Встроенный элемент: значение (свойства display )

Таблица: значение (свойства display )

Список: свойство

Плавающий объект: свойство

Структура правил CSS

Структура CSS может показаться подобной языкам С или С++, хотя все сходство состоит в том, что правила ограничиваются символами {} и что строка с каждым свойством заканчивается знаком "точка с запятой".

Таблица стилей состоит из нескольких правил. В каждом из них используется такой синтаксис:

Selector {properties}

Селектор показывает, с каким элементом следует сравнить и затем применить свойства, а свойства заключаются в фигурные скобки и используют следующий синтаксис:

Property = attribute: value;

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

< Лекция 10 || Лекция 11: 1234 || Лекция 12 >