Значение/Value
Определяет набор действительных значений свойства. Типы значений могут обозначаться по-разному:
- ключевые слова (например, auto, disc и т.д.);
- базовые типы данных, вводимые между символами "<" и ">" (например, <length>, <percentage> и т.д.). В электронной версии документа каждый объект базового типа данных связан со своим определением;
- типы, имеющие те же диапазоны значений, что и свойство, имеющее то же имя (например, <'border-width'>, <'background-attachment'> и т.д.). В данном случае имя типа является именем свойства (заключённым в кавычки) между символами "<" и ">" (например, <'border-width'>). В электронной версии документа каждый объект такого типа не-терминала ссылается на соответствующее определение свойства;
- не-терминалы, не использующие имя свойства. В данном случае имя не-терминала выводится между символами "<" и ">", например, <border-width>. Заметьте разницу между <border-width> и <'border-width'>; последнее определено в терминах предыдущего. Определение не-терминала размещается поблизости от его первого вхождения в данной спецификации. В электронной версии документа каждый объект этого типа ссылается на соответствующее определение значения.
Другие слова в этих определениях являются ключевыми словами, которые обязаны появляться буквально, без кавычек (например, red). Слэш (/) и запятая (,) также обязаны появляться буквально.
Значения должны быть организованы так:
- Несколько соседних слов означают, что все они должны появляться в указанном порядке.
- Вертикальная линия (|) разделяет две или более альтернативы: только одна из них должна быть записана.
- Двойная вертикальная черта (||) разделяет две или более опции: одна или более из них должны быть записаны в любом порядке.
- Скобки ([ ]) служат для группирования.
Соседство является более строгим, чем двойная вертикальная черта, а двойная вертикальная черта - строже, чем одинарная. Таким образом, следующие строки эквивалентны:
a b | c || d e [ a b ] | [ c || [ d e ]]
За каждым типом, ключевым словом или группой в скобках может следовать один из модификаторов:
- Звёздочка (*) - означает, что предыдущий тип, слово или группа появляется ноль или более раз.
- Плюс (+) - означает, что предыдущий тип, слово или группа появляется один или более раз.
- Знак вопроса (?) - означает, что предыдущий тип, слово или группа являются необязательными.
- Пара чисел в фигурных скобках ({A,B}) - означает, что предыдущий тип, слово или группа появляется не менее А и не более В раз.
Следующий пример иллюстрирует различные значения типов:
Value\Значение: N | NW | NE Value: [ <length> | thick | thin ]{1,4} Value: [<family-name> , ]* <family-name> Value: <uri>? <color> [ / <color> ]? Value: <uri> || <color>