Поиск
Конформность: требования и рекомендации
Определения
В данном разделе начинается формальная спецификация CSS2, начиная с соглашения между авторами данного документа, пользователями и разработчиками CSS2.
В этом документе такие ключевые слова как "ДОЛЖЕН", "НЕ ДОЛЖЕН", "ТРЕБУЕТСЯ", "НУЖНО", "НЕ НУЖНО", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "МОЖЕТ БЫТЬ" и "НЕОБЯЗАТЕЛЬНО" интерпретируются аналогично тому, как это делается с английскими эквивалентами в стандарте RFC 2119 . Из соображений удобства чтения далее при написании этих слов не будут использоваться заглавные буквы.
Периодически в данной спецификации будут приводиться полезные рекомендации для разработчиков и агентов пользователей. Они не являются нормативными, поэтому соответствие данной спецификации не зависит от их реализации. В данных рекомендациях используются вводные выражения типа "Рекомендуется ...", "Данная спецификация рекомендует ..." и другие аналогичные выражения.
Таблица стилей
Набор выражений, определяющих представление документа.
Таблицы стилей имеют три различных источника происхождения, относящихся к разработчику, пользователю и агенту пользователя. Взаимодействие этих трех источников описано в разделе о каскадах и наследовании.
Корректная таблица стилей
Корректность таблицы стилей зависит от уровня CSS, используемого для ее создания. Так, корректность таблиц стилей, написанных в CSS1, не изменится при переходе к CSS2. Но из-за внесения некоторых изменений в CSS2 появляются различия в семантике написания ряда таблиц в CSS1 и CSS2.
Корректная таблица стилей, созданная с помощью CSS2, должна разрабатываться в соответствии с грамматикой CSS2. Более того, она должна содержать только те правила at, имена свойств и принимаемые ими значения, которые определены в данной спецификации. Недопустимое правило at, имя свойства или его значение являются частным примером некорректности таблицы.
Исходный документ
Документ, к которому относятся одна или несколько таблиц стилей. С использованием определенной системы кодировки данный документ представляется в виде дерева элементов. Каждый элемент представлен своим именем, идентифицирующим его тип; числом его атрибутов (это число не является обязательным) и своим, возможно пустым, содержимым.
Язык документа
Система кодировки, используемая для представления исходного документа (например, HTML или XML).Элемент
(Терм языка SGML, см. [ISO8879].) Примитивная синтаксическая конструкция языка документа. Большинство правил, используемых в таблицах стилей CSS, используют имена элементов (например, "P", "TABLE" или "OL" для HTML) для определения информации об их представлении.Заменяемый элемент
Элемент, относительно которого компилятору CSS известна только его внутренняя размерность. В HTML примерами заменяемых элементов могут служить элементы IMG, INPUT, TEXTAREA, SELECT и OBJECT. Например, содержимое элемента IMG часто заменяется изображением, которое задает атрибут "src". В CSS не указывается способ определения внутренних размерностей.
Внутренняя размерность
Ширина и высота, определяемые самим элементом, а не его окружением. В CSS2 предполагается, что все заменяемые элементы и только они имеют внутреннюю размерность.
Атрибут
Значение, связанное с элементом и состоящее из имени и связанного с ним (текстового) значения.
Содержимое
Содержимое, связанное с элементом в исходном документе. Не у всех элементов имеется содержимое. Элементы могут быть пустыми. В качестве содержимого некоторого элемента может выступать текст или множество вложенных элементов, относительно которых исходный элемент называется родительским.
Генерируемое содержимое
Содержимое элемента, которое было связано с ним в результате использования соответствующих таблиц стилей. Генерируемое содержимое заменяемого элемента поступает не из исходного документа. Это может быть дополнительный текст для элемента (например, значение атрибута "alt" в HTML) и элементы, явно или неявно привносимые таблицей стилей, например, маркеры, номера и др.
Дерево документа
Дерево элементов, закодированное в исходном документе. Каждый элемент в этом дереве имеет только один родительский элемент, за исключением корневого элемента, у которого его нет.
Дочерний элемент
Элемент А называется дочерним по отношению к элементу B, если и только если B является родительским элементом элемента А.
Потомок
Элемент А называется потомком элемента B, если выполняется одно из следующих условий:
- А является дочерним элементом элемента B;
- А является дочерним элементом элемента C, который, в свою очередь, является потомком B.
Предок
Элемент А называется предком элемента B, если и только если B является потомком элемента А.Сестринский элемент
Элемент А называется сестринским элементом элемента B, если и только если элементы А и B являются дочерними элементами одного и того же элемента. Элемент А является предшествующим сестринским элементом, если в дереве документа он находится перед элементом B. Элемент A является следующим сестринским элементом, если в дереве документа он находится после элемента B.Предшествующий элемент
Элемент А называется предшествующим элементу B, если и только если (1) А является предком B или (2) А является предшествующим сестринским элементом элемента B.Cледующий элемент
Элемент А называется следующим за элементом B, если и только если B предшествует элементу А.Разработчик
Разработчик - это человек, создающий документы и связанные с ними таблицы стилей. Документы и ассоциированные с ними таблицы стилей генерируются средством разработки.Пользователь
Пользователь - это человек, взаимодействующий с агентом пользователя с целью просмотра, прослушивания или другого использования документа и связанных с ним таблиц стилей. Пользователь может создать персональную таблицу стилей, в которой будут закодированы персональные настройки.Агент пользователя
Агент пользователя - это произвольная программа, которая интерпретирует документ, написанный на некотором языке структуризации, и применяет связанные с ним таблицы стилей в соответствии с правилами данной спецификации. Агент пользователя может выводить документ на экран, осуществлять его звуковое воспроизведение, выводить на печать, конвертировать в другой формат и т.д.
Ниже приводится пример исходного документа на языке HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<HTML>
<TITLE>Моя домашняя страница</TITLE>
<BODY>
<H1> Моя домашняя страница;/H1>
<P>Добро пожаловать на мою домашнюю страницу! Позвольте рассказать вам
о моих любимых композиторах:
<UL>
<LI>Элвис Костелло
<LI>Иоган Брамс
<LI>Джорж Брассенс
</UL>
</BODY>
</HTML>
В результате получается следующее дерево:
В соответствии с определением языка HTML элементы типа HEAD будут определены во время синтаксического анализа автоматически и станут частью дерева документа, если даже теги <HEAD> отсутствуют в исходном документе. Аналогичным образом программа синтаксического анализа определит, где заканчиваются элементы P и LI, даже если теги </P> и </LI> отсутствуют в исходном документе.