Поиск

Синтаксис

Маркирование

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

На лексическом уровне таблицы стилей CSS состоят из последовательности меток. Список меток, используемых в CSS2, приведен ниже. В их определениях используются регулярные выражения в стиле Lex. Использование восьмеричных кодов осуществляется в соответствии со стандартом ISO 10646 ([ISO10646]). Как и в Lex, в случае множественных совпадений метку определяет самое длинное совпадение.

Макросы, фигурирующие в предыдущей таблице и заключенные в фигурные скобки "{}", определяются следующим образом: Макрос Определение

Ниже приведено ядро синтаксических правил CSS. В последующих разделах будут изложены инструкции по их использованию. В Приложении Г описана более строгая грамматика, более свойственная языку CSS второго уровня.

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

Метка S используется для обозначения свободного места. В качестве последнего могут выступать символы "пробел" (код в unicode: 32), "отступ" (9), "перевод строки" (10), "возврат каретки" (13) и "подача бумаги" (12). Другие символы, обозначающие пробелы, например, "em-пробел" (8195) и "идеографический пробел" (12288) не могут быть частью свободного места.

Ключевые слова

Ключевые слова имеют форму идентификаторов. Они не должны заключаться в кавычки ("..." или '...'). Таким образом,
red

это ключевое слово, а
"red"
не является таковым. (Это строка.) Можно привести другие примеры недопустимого написания:

width: "auto";
border: "none";
font-family: "serif";
background: "red";
Символы и регистр

Здесь действуют следующие правила:

  • Таблицы стилей CSS не учитывают регистр за исключением тех их частей, которые не являются объектами языка CSS. За пределами рассмотрения данной спецификации остается, например, учет региструа в значениях атрибутов языка HTML "id" и "class", названий шрифтов и URI. В частности, заметим, что в формате HTML в названиях элементов регистр не учитывается, в то время как в формате XML учитывается.
  • В CSS2 идентификаторы (включая названия элементов, классы и атрибут ID в селекторах) могут содержать символы из диапазонов от A до Z, от a до z и от 1 до 9; символы, код которых по стандарту ISO-10646 превосходит 161, а также дефис "-". Идентификаторы не могут начинаться с дефиса или с цифры и могут содержать специальные комбинации символов (с использованием обратного слэша), а также числовые коды кодировки ISO-10646 (см. следующий пункт). Например, идентификатор "B&W?" можно написать как "B&W?" или "B26 W3F".
  • Следует заметить, что кодировка unicode эквивалентна кодировке ISO-10646 (см. [UNICODE] и [ISO10646]).
  • В CSS2 обратный слэш () используется для специального кодирования символов тремя различными способами.
  • Если обратный слэш и следующий за ним символ новой строки находятся внутри строки, то они игнорируются (т.е. считается, что строка не будет содержать ни обратного слэша, ни перехода на новую строку).

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

    Использование обратного слэша позволяет разработчикам оперировать с символами, которые нельзя просто поместить в документ. В данном случае после обратного слэша должно находиться не более шести шестнадцатеричных цифр (0,...,9,A,...,F), выступающих в качестве кодов этих символов в системе ISO-10646 ([ISO10646]). Если за шестнадцатеричным числом следует цифра или буква, то следует четко обозначить конец данного числа. Это можно сделать с помощью:

    1. обычного пробела (или любого другого пустого символа): "26 B" ("&B"); написания ровно шести шестнадцатеричных цифр: "