1 О спецификации CSS 2.1

Содержание

1.1 CSS 2.1 против CSS 2

Сообщество CSS получило существенный опыт со спецификацией CSS2, с тех пор как она стала рекомендацией в 1998. Ошибки в спецификации CSS2 были впоследствии исправлены путем публикации различных списков ошибок, но они еще не было возможности изменить спецификацию на основе полученного опыта.

В то время как многие из этих проблем будут адресованы грядущими спецификациям CSS3, текущее состояние дел препятствует реализации и функциональной совместимости CSS2. Спецификация CSS.2 1 пытается адресовать эту ситуацию путем:

Таким образом, хотя это не означает, что таблица стилей CSS2 обязательно прямо-совместима с CSS 2.1, это означает, что таблица стилей, ограничивающая себя функциями CSS 2.1, вероятнее всего найдет совместимый агент пользователя сегодня и сохранит прямую совместимость в будущем. Хотя нарушение прямой совместимости не желательно, мы полагаем, что выгоды для пересмотров в CSS 2.1 являются стоящими.

CSS 2.1 разработана на основе CSS2 и предназначена для ее замены. Некоторые части CSS2 остались неизменными в CSS 2.1, некоторые части были изменены, а некоторые части - удалены. Удаленные части могут быть использованы в будущей спецификации CSS3. Будущие спецификации должны ссылаться на CSS 2.1 (пока они не нуждаются в функциях из CSS2, которые были пропущены в CSS 2.1, и затем им следует ссылаться на CSS2 только для тех функций, или предпочтительно ссылаться на такую функцию(и) в соответствующем Модуле CSS3, который включает эту функцию(и)).

1.2 Ознакомление со спецификацией

Этот раздел не является нормативным.

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

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

1.3 Структура спецификации

Этот раздел не является нормативным.

Спецификация разбита на следующие разделы:

Раздел 2: Введение в CSS 2.1
Во введении приведен краткий учебник по CSS 2.1 и изложены основные принципы CSS 2.1.
Разделы 3 - 20: Справочное руководство по CSS 2.1.
Основную часть справочного руководства составляет справочник по языку CSS 2.1. Этот справочник определяет то, что может войти в таблицы стилей CSS 2.1 (синтаксис, свойства, значения свойства) и как агенты пользователей должны интерпретировать эти таблицы стилей, чтобы требовать соответствия.
Приложения.
В приложениях приведена информация о параметрах звуковых таблиц стилей (не нормативная), пример таблицы стилей для HTML 4, отличия от CSS2, грамматика CSS 2.1, список нормативных и информационных ссылок, и два указателя: один для свойств и один общий указатель.

1.4 Условные обозначения

1.4.1 Элементы и атрибуты языка документа

1.4.2 Определение свойств в CSS

В CSS определение каждого свойства начинается с краткой основной информации примерно следующего вида:

'property-name'
Значение:  допустимые значения и синтаксис
Начальное значение:  значение, принимаемое свойством по умолчанию
Область применения:  элементы, к которым применяется данное свойство
Наследование:  является ли свойство наследуемым
Процентное задание:  способ интерпретации значения свойства, заданного в процентах
Устройства:  к каким группам устройств применяется это свойство
Рассчитанное значение:  как вычислить рассчитанное значение

1.4.2.1 Значение

Эта часть определяет набор допустимых значений для свойства, которое называется 'property-name'. Типы значений могут задаваться с помощью

  1. значений ключевого слова (например, auto, disc, и т.д.)
  2. основных типов данных, заключенных в угловые скобки "<" и ">" (например, <длина>, <проценты> и т.д.). В электронной версии документа с каждым основным типом данных связана гиперссылка на его определение.
  3. одноименного типа данных, имеющего тот же диапазон значений, что и рассматриваемое свойство (например, <'border-width'> <'background-attachment'> и т.д.). В данном случае именем типа является имя свойства (вместе с кавычками), заключенное между угловыми скобками "<" и ">" (например, <'border-width'>). Такие типы не содержат значение 'inherit'. В электронной версии документа с каждым таким типом данных связана гиперссылка на определение соответствующего свойства.
  4. типа данных, имя которого не совпадает с именем свойства. В этом случае имя типа представляется между угловыми скобками "<" и ">" (например, <border-width>). Обратите внимание на различие между <border-width> и <'border-width'>; последнее определяется посредством предыдущего. Определение типа данных находится рядом с его первым упоминанием в спецификации. В электронной версии документа с каждым таким типом данных связана гиперссылка на определение соответствующего значения. Другие слова в данных способах задания значений являются ключевыми словами, которые должны отображаться без каких либо дополнительных символов, в том числе и без кавычек (например, red).

Слэш "/" и запятая "," должны также отображаться так, как указаны, без дополнительных символов. Набор принимаемых свойством значений задается одним из следующих способов:

несколько следующих друг за другом значений.

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

    a b   |   c || d e
  [ a b ] | [ c || [ d e ]]

После каждого типа значений, ключевого слова или заключенной в скобки группы слов может следовать один из перечисленных ниже модификаторов:

Следующие примеры иллюстрируют различные способы задания набора значений:

Значение:   N | NW | NE
Значение:   [ <length> | thick | thin ]{1,4}
Значение:   [<имя семейства> , ]* <имя семейства>
Значение:   <uri>? <цвет> [ / <цвет> ]?
Значение:   <uri> || <цвет>

Типы значений определяются в терминах меток, как описано в Приложении G.2. Поскольку грамматика допускает пробелы между метками в компонентах expr production, пробелы могут применяться между метками в значениях.

Примечание: Во многих случаях, пробелы фактически будут требоваться между метками, чтобы отличить их друг от друга. Например, значение '1em2em' анализировалось бы как одиночная метка DIMEN с числовым значением '1' и идентификатором 'em2em', который является недопустимой единицей измерения. В этом случае потребуется пробел перед '2', чтобы оно анализировалось как две длины: '1em' и '2em'.

1.4.2.2 Начальное значение

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

1.4.2.3 Область применения

В этом поле перечисляются элементы, к которым применяется данное свойство. Считается, что все элементы обладают всеми свойствами, но не для каждого элемента все свойства имеют какой-либо эффект. Например, свойство 'clear' влияет только на элементы уровня блока.

1.4.2.4 Наследование

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

1.4.2.5 Процентные значения

В этом поле указывается способ интерпретации значения, выраженного в процентах, если оно встречается в значении свойства. Если в этом поле содержится запись "N/A", то для этого свойства значения в процентах недопустимы.

1.4.2.6 Группы устройств

В этом поле указываются группы устройств, к которым применяется данное свойство. Информация о группах устройств не является нормативной.

1.4.2.7 Рассчитанное значение

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

1.4.3 Свойства стенографического типа

Некоторые свойства являются стенографическими свойствами, т.е. они позволяют указывать значения сразу нескольких свойств одновременно.

Например, свойство 'font' является стенографическим для установки свойств 'font-style', 'font-variant', 'font-weight', 'font-size', 'line-height' и 'font-family' одновременно.

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

Пример(ы):

Следующие несколько правил:

h1 { 
  font-weight: bold; 
  font-size: 12pt;
  line-height: 14pt; 
  font-family: Helvetica; 
  font-variant: normal;
  font-style: normal;
}

можно записать намного короче с использованием одного стенографического свойства:

h1 { font: bold 12pt/14pt Helvetica }

В этом примере свойства 'font-variant' и 'font-style' принимают свои начальные значения.

1.4.4 Примеры и комментарии

Все примеры, демонстрирующие недопустимые операции, имеют пометку "ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ".

Примеры HTML, в которых отсутствует объявление DOCTYPE, являются SGML Text Entities, соответствующим HTML 4.01 Strict DTD [HTML4]. Остальные примеры HTML соответствуют DTD, приведенным в примерах.

Все комментарии носят ознакомительный характер.

Примеры и комментарии маркированы в пределах исходного текста HTML для спецификации и агенты пользователей CSS будут обрабатывать их особо.

1.4.5 Изображения и длинные описания

Большинство изображений в электронной версии данного документа сопровождаются "длинными описаниями". Ссылка на длинное описание обозначается значком "[D]" после изображения.

Изображения и длинные описания носят исключительно информативный характер.

1.5 Благодарности

Этот раздел не является нормативным.

CSS 2.1 базируется на CSS2. Информацию о людях, создававших CSS2, смотрите в разделе CSS2 о благодарностях.

Мы хотели бы поблагодарить следующих людей, которые своим участие и ответами в рассылке www-style, помогли нам с созданием этой спецификации: Andrew Clover, Bernd Mielke, C. Bottelier, Christian Roth, Christoph Pдper, Claus Fдrber, Coises, Craig Saila, Darren Ferguson, Dylan Schiemann, Etan Wexler, George Lund, James Craig, Jan Eirik Olufsen, Jan Roland Eriksson, Joris Huizer, Joshua Prowse, Kai Lahmann, Kevin Smith, Lachlan Cannon, Lars Knoll, Lauri Raittila, Mark Gallagher, Michael Day, Peter Sheerin, Rijk van Geijtenbeek, Robin Berjon, Scott Montgomery, Shelby Moore, Stuart Ballard, Tom Gilder, Vadim Plessky, и редакторов Open eBook Publication Structure Working Group. Мы также хотим выразить благодарность Glenn Adams и Susan Lesch, которые помогли корректировать этот документ.

Кроме того, мы хотели бы выразить особую благодарность fantasai, Ada Chan и Boris Zbarsky, которые уделили существенное время CSS 2.1, и Kimberly Blessing за помощь с редактированием.