Модель визуального форматирования
Введение
Эта и последующие главы описывают модель визуального форматирования: то как пользовательские агенты (ПА) обрабатывают "Соответствие: Требования и Рекомендации" для визуального "Типы носителя" .
В модели визуального форматирования каждый элемент дерева документа генерирует ноль или более боксов в соответствии с "Модель бокса" . Структура этих боксов управляется:
- размерами боксов и типом.
- схемой позиционирования (нормальное позиционирование, всплывание и абсолютное).
- взаимоотношениями между элементами в дереве документа.
- внешней информацией (например, размером порта просмотра, "Соответствие: Требования и Рекомендации" и т.д.).
Свойства, определённые в этой и следующих главах, применяются и к "Типы носителя" , и к страничным носителям. В то же время, значения свойств полей варьируются при использовании со страничным носителем (см. в "Страничные носители" ).
модель визуального форматирования не определяет все аспекты форматирования (например, она не специфицирует алгоритм расстояний между буквами). Поведение "Соответствие: Требования и Рекомендации" может отличаться в вопросах форматирования.
Порт просмотра
ПА для непрерывных носителей обычно предлагают пользователю порт просмотра (окно или другую область просмотра на экране), в котором пользователь видит документ. ПА могут изменять внешний вид документа, если порт просмотра изменил размеры (см. начальный содержащий блок ). Если порт просмотра меньше, чем начальный содержащий блок документа, ПА должен предоставить механизм прокрутки. Имеется не менее одного порта просмотра в канве, но ПА могут отображать более чем одну канву (т.е. предоставлять различные виды того же самого документа).
Содержащие блоки
В CSS2 многие варианты позиционирования и размеры вычисляются относительно кромки прямоугольного бокса, называемого содержащий блок. Обычно генерируемые боксы действуют как содержащие блоки для боксов-потомков; мы говорим, что бокс "устанавливает" содержащий блок для своих потомков. Фраза "блок, содержащий бокс" означает "блок, в котором бокс находится", а не блок, генерирующий бокс.
Каждый бокс имеет позицию относительно содержащего блока, но не ограничен этим блоком и может вызвать "Визуальные эффекты" .
Корневой элемент дерева документа генерирует бокс, который служит начальным содержащим блоком для последующего вывода.
Ширина начального содержащего блока может быть специфицирована свойством 'width' корневого элемента. Если это свойство имеет значение 'auto', ПА предоставляет начальное значение ширины (например, ПА использует текущую ширину порта просмотра).
Высота начального содержащего блока может быть специфицирована свойством 'height' корневого элемента. Если это свойство имеет значение 'auto', высота содержащего блока увеличивается, чтобы приспособиться к содержимому документа.
Начальный содержащий блок не может быть позиционирован или всплывать (т.е. ПА "Синтаксис CSS2 и базовые типы данных" свойства 'position' и 'float корневого элемента).
Детали того, как высчитываются размеры содержащего блока, описаны в "Модель визуального форматирования. Детали" .