Опубликован: 06.06.2006 | Доступ: свободный | Студентов: 3910 / 695 | Оценка: 4.34 / 4.02 | Длительность: 21:23:00
Лекция 2:

CSS2. Введение

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

Модель процесса CSS2

Этот раздел представляет одну из возможных моделей того, как работают ПА, поддерживающие CSS. Это лишь концептуальная модель; конкретные реализации могут варьироваться.

ПА в этой модели обрабатывает источник, выполняя следующие шаги:

  1. Разбирает документ-источник и создаёт "Соответствие: Требования и Рекомендации"
  2. Идентифицирует "Типы носителя"
  3. Запрашивает все таблицы стилей, ассоциированные с документом, которые специфицированы для целевого "Типы носителя"
  4. Помечает каждый элемент дерева документа назначением одиночного значения каждому "Синтаксис CSS2 и базовые типы данных" , которое может быть применено к целевому "Типы носителя" . Значения свойств устанавливаются в соответствии с механизмами, описанными в разделе "Установка значений свойств. Каскадирование и Наследование" .

    Частично расчёт значений зависит от алгоритма форматирования, соответствующего целевому "Типы носителя" . Например, если целевой носитель - это экран, то ПА применяют "Модель визуального форматирования" . Если целевой носитель - это страница для печати, то ПА применяют "Страничные носители" . Если целевой носитель - это устройство звукового вывода (например, речевой синтезатор), то ПА применяют "Звуковые таблицы стилей" .

  5. На базе размеченного дерева документа генерирует структуру форматирования. Часто структура форматирования напоминает дерево документа, но может также и слегка отличаться, особенно если авторы используют псевдоэлементы и генерируемое содержимое. Во-первых, структура форматирования вообще не должна иметь "очертания дерева" - природа структуры зависит от реализации. Во-вторых, структура форматирования может содержать информации больше или меньше, чем дерево документа. Например, если элемент дерева документа имеет значение 'none' для свойства 'display', то этот элемент не будет ничего генерировать в структуре форматирования. Элемент list, с другой стороны, может генерировать больше информации в структуре форматирования: содержимое элемента list и стилевую информацию (например, изображение для маркёра).

    Обратите внимание, что ПА CSS не изменяет дерево документа на этом этапе. И особенно, что содержимое, генерируемое в связи с таблицой стилей, не возвращается процессору языка документа (например, для повторного разбора).

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

Шаг 1 находится вне пределов действия данной спецификации (см., например, [DOM]).

Шаги 2-5 адресуются основным объёмом данной спецификации.

Шаг 6 находится вне пределов действия данной спецификации.

Канва

Для всех носителей термин канва описывает "пространство, где выводится сформатированная структура". Канва бесконечна по каждому измерению, но представление обычно производится в пределах ограниченной области канвы, установленной ПА в соответствии с целевым носителем. Например, вывод ПАгентами на экран обычно требует наличия минимальной ширины и выбора начальной ширины на базе размеров "Модель визуального форматирования" . Вывод ПАгентами на страницу обычно требует ограничения ширины и высоты. Звуковые ПА могут предполагать ограничения звукового пространства, но не времени.

Модель адресации CSS2

"Селекторы" и свойства CSS2 позволяют обращаться из таблиц стилей к следующим частям документа или ПАгента:

  • Элементам дерева документа и определённым их взаимоотношениям (см. раздел "Селекторы" ).
  • Атрибутам элементов дерева документа и значениям этих атрибутов (см. раздел "Селекторы" ).
  • Некоторым частям содержимого элемента (см. псевдоэлементы "Селекторы" и "Селекторы" .
  • Элементам дерева документа, находящимся в определённом состоянии (см. раздел "Селекторы" ).
  • Некоторым аспектам канвы при выводе документа.
  • Некоторой системной информации (см. раздел "Интерфейс пользователя" ).
< Лекция 1 || Лекция 2: 1234 || Лекция 3 >