В этом разделе описывается грамматика (и правила вперёд-совместимого разбора), общие для любой версии CSS (включая CSS2). Будущие версии CSS будут придерживаться этого ядра синтаксиса, хотя и могут ввести дополнительные синтаксические ограничения.
Эти описания являются нормативными. Они также дополняются нормативными грамматическими правилами в Приложении D.
Все уровни CSS - уровень 1, уровень 2 и любые будущие уровни - используют одно ядро синтаксиса. Это позволяет
На лексическом уровне таблицы стилей CSS состоят из последовательности лексем (грамматических единиц). Список лексем CSS2 приведён ниже. Определения используют общепринятые выражения в стиле Lex. Восьмеричные коды относятся к ISO 10646 ([ISO10646]). Как и в Lex, в случае нескольких одновременных совпадений, самое длинное совпадение определяет лексему.
| Лексема | Определение |
|---|---|
| IDENT | {ident} |
| ATKEYWORD | @{ident} |
| STRING | {string} |
| HASH | #{name} |
| NUMBER | {num} |
| PERCENTAGE | {num}% |
| DIMENSION | {num}{ident} |
| URI | url\({w}{string}{w}\)
| url\({w}([!#$%*-~]|{nonascii}|{escape})*{w}\) |
U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})? |
|
<!-- |
|
--> |
|
| ; | ; |
| { | \{ |
| } | \} |
| ( | \( |
| ) | \) |
| [ | \[ |
| ] | \] |
| S | [ \t\r\n\f]+ |
| COMMENT | \/\*[^*]*\*+([^/][^*]*\*+)*\/ |
| FUNCTION | {ident}\( |
| INCLUDES | ~= |
| DASHMATCH | |= |
| DELIM | любой другой символ, не совпавший с вышеприведёнными правилами |
Вышеприведённые макросы в фигурных скобках ({}) определены так:
| Макрос | Определение |
|---|---|
| ident | {nmstart}{nmchar}* |
| name | {nmchar}+ |
| nmstart | [a-zA-Z]|{nonascii}|{escape} |
| nonascii | [^\0-\177] |
| unicode | \\[0-9a-f]{1,6}[ \n\r\t\f]? |
| escape | {unicode}|\\[ -~\200-\4177777] |
| nmchar | [a-z0-9-]|{nonascii}|{escape} |
| num | [0-9]+|[0-9]*\.[0-9]+ |
| string | {string1}|{string2} |
| string1 | \"([\t !#$%(-~]|\\{nl}|\'|{nonascii}|{escape})*\" |
| string2 | \'([\t !#$%(-~]|\\{nl}|\"|{nonascii}|{escape})*\' |
| nl | \n|\r\n|\r|\f |
| w | [ \t\r\n\f]* |
Ниже дан синтаксис ядра CSS. В последующих разделах описывается, как этот синтаксис использовать. Приложение D описывает более ограниченный набор грамматических правил исключительно для уровня 2 языка CSS.
stylesheet : [ CDO | CDC | S | statement ]*;
statement : ruleset | at-rule;
at-rule : ATKEYWORD S* any* [ block | ';' S* ];
block : '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*;
ruleset : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
selector : any+;
declaration : property ':' S* value;
property : IDENT S*;
value : [ any | block | ATKEYWORD S* ]+;
any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
| DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
| FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*;
Лексемы КОММЕНТАРИЕВ в грамматике отсутствуют (для сохранения читабельности), но некоторое количество этих лексем может появляться где-либо среди других лексем.
Лексема S в вышеприведённой грамматике стоит вместо пробела. Только символы "space" (Unicode code 32), "tab" (9), "line feed" (10), "
Ключевые слова имеют форму
red
это ключевое слово, а
"red"
- нет (это
width: "auto"; border: "none"; font-family: "serif"; background: "red";
Следующие правила всегда соблюдаются:
В CSS2 идентификаторы (включая имена элементов, классы и ID в селекторах) могут содержать только символы [A-Za-z0-9] и символы ISO 10646 от 161 и выше и дефис (-); они не могут начинаться с дефиса или цифры. Они могут также содержать
Заметьте, что Unicode это покодовый эквивалент ISO 10646 (см. [UNICODE] и [ISO10646]).
В CSS2 символ обратного слэша (\) обозначает три типа символов - escape-последовательностей.
Фактически эти два метода можно комбинировать. Только один символ пробела игнорируется после 16-ричной
Таблица стилей любой версии CSS состоит из списка
В данной спецификации выражения "непосредственно перед" или "сразу после" означают отсутствие пробелов или комментариев.
В CSS2 ПА обязан игнорировать любое правило '@import' , которое появляется внутри
Предположим, например, что разборщик CSS2 обрабатывает такую таблицу стилей:
@import "subs.css";
H1 { color: blue }
@import "list.css";
Второе '@import', в соответствии с CSS2, недопустимо. Разборщик CSS2 игнорирует всё
@import "subs.css";
H1 { color: blue }
Здесь второе правило '@import' - неверное, поскольку появляется внутри
@import "subs.css";
@media print {
@import "print-main.css";
BODY { font-size: 10pt }
}
H1 {color: blue }
Это пример
{ causta: "}" + ({7} * '\'') }
Заметьте, что это неверное правило CSS2, образующее, тем не менее,
Набор правил (называемый также "правило") состоит из
В CSS2 запятая (,) имеет специальное
Например, поскольку "" это неверная лексема в селекторе CSS2, ПА CSS2 обязан игнорировать всю вторую строку и не устанавливать красный цвет в H3:
H1, H2 {color: green }
H3, H4 H5 {color: red }
H6 {color: black }
Это более сложный пример. Первые две пары фигурных скобок находятся внутри строки и не обозначают конец cелектора. Это - верный оператор CSS2.
P[example="public class foo\
{\
private int x;\
\
foo(int x) {\
this.x = x;\
}\
\
}"] { color: red }
В зависимости от способа работы
Таким образом, следующие правила:
H1 { font-weight: bold }
H1 { font-size: 12pt }
H1 { line-height: 14pt }
H1 { font-family: Helvetica }
H1 { font-variant: normal }
H1 { font-style: normal }
эквивалентны:
H1 {
font-weight: bold;
font-size: 12pt;
line-height: 14pt;
font-family: Helvetica;
font-variant: normal;
font-style: normal
}
Синтаксис значений специфицируется отдельно для каждого
ПА обязан игнорировать
Предположим, что разборщик CSS2 обрабатывает такую таблицу стилей:
H1 { color: red; font-style: 12pt } /* Неверное значение: 12pt */
P { color: blue; font-vendor: any; /* Неверное свойство: font-vendor */
font-variant: small-caps }
EM EM { font-style: normal }
Второе
H1 { color: red; }
P { color: blue; font-variant: small-caps }
EM EM { font-style: normal }
CSS допускает также SGML-ограничители комментариев ("<!--" и "-->") в определённых местах, но это не
В некоторых случаях ПА обязан игнорировать часть неверной таблицы стилей. В этой спецификации игнорирует означает, что ПА разбирает неверную часть (чтобы определить её начало и конец), но действует так, как будто её нет.
Для гарантий того, что новые
H1 { color: red; rotation: 70minutes }
ПА будет рассматривать это, как если бы в таблице было:
H1 { color: red }
" IMG { float: left } /* корректно в CSS2 */
" IMG { float: left here } /* "here" это неверное значение для 'float' */
" IMG { background: "red" } /* ключевые слова CSS2 не могут вводиться в кавычках */
" IMG { border-width: 3 } /* для размеров должны быть указаны единицы измерения */
Разборщик CSS2 примет первое правило и проигнорирует остальные, как если бы таблица была такой:
IMG { float: left }
IMG { }
IMG { }
IMG { }
ПА, соответствующий будущим спецификациям CSS, может учитывать также одно или более из следующих правил.
Неверные at-ключевые слова. ПА обязаны игнорировать неверные ключевые слова at- вместе с тем, что следует после них до (;) включительно или до
" @three-dee {
" @background-lighting {
" azimuth: 30deg;
" elevation: 190deg;
" }
" H1 { color: red }
" }
H1 { color: blue }
Правило от- '@three-dee' не входит в CSS2. Следовательно, всё
H1 { color: blue }
Значения некоторых типов могут принимать целые (обозначенные
Заметьте, что многие
Размеры имеют отношение к горизонтальным и вертикальным измерениям.
Формат значения размера (обозначаемого в этой спецификации
Некоторые
Есть два типа единиц измерения: относительные и абсолютные. Относительные размеры специфицируют
H1 { margin: 0.5em } /* em */
H1 { margin: 1ex } /* ex */
P { font-size: 12px } /* px */
Единицы измерения 'em' эквивалентны вычисленному значению
Единицы
Правило: H1 { line-height: 1.2em }
означает, что высота строки элементов H1 будет на 20% больше,
чем размер шрифта элементов H1.
С другой стороны: H1 { font-size: 1.2em }
означает, что размер шрифта элементов H1 будет на 20% больше,
чем размер шрифта, наследуемый из элементов H1.
Если они специфицированы для корня дерева документа (например, "HTML" в HTML),
При чтении с расстояния вытянутой руки 1px соответствует примерно 0.28 мм (1/90 дюйма). При печати на лазерном принтере, рассчитанном на чтение с несколько меньшего расстояния, чем вытянутая рука, (55 см, 21 дюймов), 1px составляет около 0.21 мм. На принтере с разрешением 300 точек на дюйм (dpi) это можно округлить до 3 точек (0.25 мм); на принтере с 600 dpi это можно округлить до 5 точек.
Два нижеследующих изображения иллюстрируют эффект при просмотре размера пиксела с расстояния и эффект разрешения устройства. На первом рисунке расстояние чтения 71 см (28 дюймов) даёт

[D]На втором рисунке область 1px на 1px закрывается одной точкой устройства с низким разрешением (экран компьютера), и та же самая область покрывается 16-ю точками на устройстве с высоким разрешением (как лазерный принтер 400 dpi).
В следующих правилах вычисленное значение 'text-indent' элементов H1 будет 36pt,
а не 45pt, если H1 является дочерним относительно элемента BODY:
BODY {
font-size: 12pt;
text-indent: 3em; /* т.е. 36pt */
}
H1 { font-size: 15pt }
H1 { margin: 0.5in } /* дюймы */
H2 { line-height: 3cm } /* сантиметры */
H3 { word-spacing: 4mm } /* миллиметры */
H4 { font-size: 12pt } /* пункты */
H4 { font-size: 1pc } /* пики */
В тех случаях, когда специфицированные размеры не могут поддерживаться, ПА обязаны давать
Формат процентного значения (обозначаемого в этой спецификации
Процентные значения всегда относительны к другому значению, например, размеру. Каждое свойство, допускающее процентные значения, определяет также
Поскольку дочерние элементы (обычно) наследуют вычисленные значения своих родителей,
в следующем примере дочерние от P элементы унаследуют значение в 12pt для 'line-height',
а не процентное значение (120%):
P { font-size: 10pt }
P { line-height: 120% } /* 120% от 'font-size' */
Значения URI в этой спецификации обозначаются
BODY { background: url("http://www.bg.com/pinkish.gif") }
Формат значения URI таков: 'url(' с последующим необязательным пробелом, с последующей необязательной одинарной кавычкой (') или двойной кавычкой ("), с последующим собственно URI, с последующей необязательной одинарной кавычкой (') или двойной кавычкой ("), с последующим необязательным пробелом с последующей ')'. Знаки кавычек должны быть одинаковыми (двойными или одинарными).
Пример без кавычек:
LI { list-style: url(http://www.redballs.com/redball.png) disc }
Скобки, запятые, пробельные символы, одинарные (') и двойные (") кавычки в URI обязаны вводиться с помощью escape-последовательностей с обратным слэшем: '\(', '\)', '\,'.
В зависимости от типа URI, может иметься возможность также записывать вышеуказанные символы как URI-
Для того, чтобы создать модульные таблицы стилей, не зависящие от абсолютного размещения ресурса, авторы могут использовать
Предположим, имеется такое правило:
BODY { background: url("yellow") }
размещённое в таблице стилей с URI:
http://www.myorg.org/style/basic.css
Фон элемента BODY в документе-источнике будет заполнен каким-нибудь изображением,
обозначенный ресурсом URI:
http://www.myorg.org/style/yellow
ПА могут по-разному обрабатывать URI, обозначающие несуществующий или необрабатываемый ресурс
Счётчики обозначаются
Чтобы обратиться к последовательности вложенных счётчиков с одним именем, обозначение будет: 'counters(<identifier>,
В CSS2 к значениям счётчиков можно обратиться только из
Вот таблица стилей, нумерующая параграфы (P) для каждой главы (H1).
Параграфы нумеруются римскими цифрами с последующими точкой и пробелом:
P {counter-increment: par-num}
H1 {counter-reset: par-num}
P:before {content: counter(par-num, upper-roman) ". "}
Счётчики вне области видимости какого-либо '
Список названий цветов: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white и yellow. Эти 16 цветов определены в HTML 4.0 ([HTML40]). Пользователь может дополнительно специфицировать ключевые слова, соответствующие цветам, используемым определёнными объектами в среде пользователя. Дополнительную информацию см. в системных цветах.
BODY {color: black; background: white }
H1 { color: maroon }
H2 { color: olive }
Модель цветов RGB используется в числовых спецификациях цвета. Во всех данных примерах специфицируется один и тот же цвет:
EM { color: #f00 } /* #rgb */
EM { color: #ff0000 } /* #rrggbb */
EM { color: rgb(255,0,0) } /* диапазон целых чисел 0 - 255 */
EM { color: rgb(100%, 0%, 0%) } /* диапазон чисел с плавающей точкой 0.0% - 100.0% */
Формат значения RGB в 16-ричной записи - '#' за которым сразу идут три или шесть 16-ричных символов. Трёхсимвольная запись RGB (#rgb) конвертируется в шестисимвольную форму (#rrggbb) путём дублирования цифр, но не дополнением нулями. Например, #fb0 расширяется до #ffbb00. Это гарантирует, что белый (#ffffff) можно специфицировать сокращённой записью (#fff) и удалить зависимость от глубины цвета на дисплее.
Формат значения RGB в функциональной записи - 'rgb(' за которым идёт список разделённых запятыми трёх числовых значений (или трёх целых, или трёх процентных) с последующей ')'. Целое
Все цвета RGB специфицированы в цветовом пространстве sRGB (см. [SRGB] ). ПА могут различаться в том, насколько точно они представляют эти цвета, но использование sRGB предоставляет недвусмысленное и объективно измеряемое определение того, каким должен быть цвет, соответствующий международным стандартам (см. [COLORIMETRY] ).
Соответствующие ПА могут ограничивать свои возможности вывода цвета для выполнения коррекции гаммы цветов. sRGB специфицирует гамму дисплея в 2.2 от специфицированных условий просмотра. ПА должны уточнить цвет, заданный в CSS, так чтобы в сочетании с 'натуральной' гаммой дисплея выводного устройства воспроизводилась эффективная гамма дисплея в 2.2. См. дополнительные детали в разделе коррекция гаммы. Обратите внимание, что воздействие производится только на цвета, специфицированные в CSS; например, от изображений ожидается сопровождающая их собственная цветовая информация.
Значения вне гаммы устройства должны усекаться: значения red, green и blue обязаны измениться, чтобы войти в рамки диапазона, поддерживаемого устройством. Для типичного CRT-монитора, чья гамма устройства - та же самая, что и sRGB, следующие три правила эквивалентны:
EM { color: rgb(255,0,0) } /* диапазон целых 0 - 255 */
EM { color: rgb(300,0,0) } /* усекается до rgb(255,0,0) */
EM { color: rgb(255,-10,0) } /* усекается до rgb(255,0,0) */
EM { color: rgb(110%, 0%, 0%) } /* усекается до rgb(100%,0%,0%) */
Другие устройства, такие как принтеры, имеют гаммы, отличные от sRGB;
некоторые цвета вне диапазона 0..255 sRGB будут презентабельными
(в пределах гаммы устройства), в то время как другие цвета в пределах
диапазона 0..255 sRGB будут вне гаммы устройства и будут, таким образом, усечены.
Угловые значения (обозначаемые в тексте
Их формат - необязательный знак ('+' или '-', с '+' по умолчанию), сразу за которым следует
Единицами измерения углов являются:
Угловые значения могут быть негативными. Они должны быть нормализованы ПАгентом до диапазона 0-360deg. Например, -10deg и 350deg эквивалентны.
Для примера, прямой угол - '90deg' или '100grad', или '1.570796326794897rad'.
Временные значения (обозначаемые в тексте
Их формат:
Значения времени не могут быть негативными.
Значения частот (обозначаемые в тексте
Их формат: <number>, сразу за которым идёт
Значения частоты не могут быть негативными.
Например, 200Hz (или 200hz) - это басовый звук, а 6kHz (или 6khz) - средний регистр.
"this is a 'string'" "this is a \"string\"" 'this is a "string"' 'this is a \'string\''
Можно разбивать
A[TITLE="a not s\
o very long title"] {/*...*/}
A[TITLE="a not so very long title"] {/*...*/}
Таблица стилей CSS это последовательность символов из Universal Character Set/
Если таблица стилей встроена в другой документ, например, элемент STYLE или атрибут "style" в HTML, таблица стилей разделяет использование
Если таблица стилей находится в отдельном файле, ПА обязаны учитывать следующий приоритет при определении
Не более одного правила
@charset "ISO-8859-1";
В данной спецификации не определено, какие
Обратите внимание, что опора на конструкцию
Таблице стилей может понадобиться обратиться к символам, которые невозможно представить в текущей
Escape-механизм символов должен использоваться только тогда, когда необходимо вывести таким способом только несколько символов. Если большая часть документа требует этого, авторы должны кодировать документ в более подходящей кодировке (например, если документ содержит много греческих символов, автор может использовать "ISO-8859-7" или "UTF-8").
Процессоры-посредники, использующие другие
Соответствующие ПА обязаны корректно отображать в Unicode все символы любой кодировки, которые они могут распознать (или они обязаны вести себя так, как будто они это делают).
Например, документ, передаваемый как ISO-8859-1 (Latin-1), не может содержать напрямую греческую букву: "κουρος" (по-гречески: "kouros"), которая должна быть записана как "\3BA\3BF\3C5\3C1\3BF\3C2".
<SPAN style="voice-family: D\FC rst">...</SPAN>
вместо:
<SPAN style="voice-family: Dürst">...</SPAN>
В этом разделе описывается грамматика (и правила вперёд-совместимого разбора), общие для любой версии CSS (включая CSS2). Будущие версии CSS будут придерживаться этого ядра синтаксиса, хотя и могут ввести дополнительные синтаксические ограничения.
Эти описания являются нормативными. Они также дополняются нормативными грамматическими правилами в Приложении D.
Все уровни CSS - уровень 1, уровень 2 и любые будущие уровни - используют одно ядро синтаксиса. Это позволяет
На лексическом уровне таблицы стилей CSS состоят из последовательности лексем (грамматических единиц). Список лексем CSS2 приведён ниже. Определения используют общепринятые выражения в стиле Lex. Восьмеричные коды относятся к ISO 10646 ([ISO10646]). Как и в Lex, в случае нескольких одновременных совпадений, самое длинное совпадение определяет лексему.
| Лексема | Определение |
|---|---|
| IDENT | {ident} |
| ATKEYWORD | @{ident} |
| STRING | {string} |
| HASH | #{name} |
| NUMBER | {num} |
| PERCENTAGE | {num}% |
| DIMENSION | {num}{ident} |
| URI | url\({w}{string}{w}\)
| url\({w}([!#$%*-~]|{nonascii}|{escape})*{w}\) |
U\+[0-9A-F?]{1,6}(-[0-9A-F]{1,6})? |
|
<!-- |
|
--> |
|
| ; | ; |
| { | \{ |
| } | \} |
| ( | \( |
| ) | \) |
| [ | \[ |
| ] | \] |
| S | [ \t\r\n\f]+ |
| COMMENT | \/\*[^*]*\*+([^/][^*]*\*+)*\/ |
| FUNCTION | {ident}\( |
| INCLUDES | ~= |
| DASHMATCH | |= |
| DELIM | любой другой символ, не совпавший с вышеприведёнными правилами |
Вышеприведённые макросы в фигурных скобках ({}) определены так:
| Макрос | Определение |
|---|---|
| ident | {nmstart}{nmchar}* |
| name | {nmchar}+ |
| nmstart | [a-zA-Z]|{nonascii}|{escape} |
| nonascii | [^\0-\177] |
| unicode | \\[0-9a-f]{1,6}[ \n\r\t\f]? |
| escape | {unicode}|\\[ -~\200-\4177777] |
| nmchar | [a-z0-9-]|{nonascii}|{escape} |
| num | [0-9]+|[0-9]*\.[0-9]+ |
| string | {string1}|{string2} |
| string1 | \"([\t !#$%(-~]|\\{nl}|\'|{nonascii}|{escape})*\" |
| string2 | \'([\t !#$%(-~]|\\{nl}|\"|{nonascii}|{escape})*\' |
| nl | \n|\r\n|\r|\f |
| w | [ \t\r\n\f]* |
Ниже дан синтаксис ядра CSS. В последующих разделах описывается, как этот синтаксис использовать. Приложение D описывает более ограниченный набор грамматических правил исключительно для уровня 2 языка CSS.
stylesheet : [ CDO | CDC | S | statement ]*;
statement : ruleset | at-rule;
at-rule : ATKEYWORD S* any* [ block | ';' S* ];
block : '{' S* [ any | block | ATKEYWORD S* | ';' ]* '}' S*;
ruleset : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
selector : any+;
declaration : property ':' S* value;
property : IDENT S*;
value : [ any | block | ATKEYWORD S* ]+;
any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
| DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
| FUNCTION | DASHMATCH | '(' any* ')' | '[' any* ']' ] S*;
Лексемы КОММЕНТАРИЕВ в грамматике отсутствуют (для сохранения читабельности), но некоторое количество этих лексем может появляться где-либо среди других лексем.
Лексема S в вышеприведённой грамматике стоит вместо пробела. Только символы "space" (Unicode code 32), "tab" (9), "line feed" (10), "
Ключевые слова имеют форму
red
это ключевое слово, а
"red"
- нет (это
width: "auto"; border: "none"; font-family: "serif"; background: "red";
Следующие правила всегда соблюдаются:
В CSS2 идентификаторы (включая имена элементов, классы и ID в селекторах) могут содержать только символы [A-Za-z0-9] и символы ISO 10646 от 161 и выше и дефис (-); они не могут начинаться с дефиса или цифры. Они могут также содержать
Заметьте, что Unicode это покодовый эквивалент ISO 10646 (см. [UNICODE] и [ISO10646]).
В CSS2 символ обратного слэша (\) обозначает три типа символов - escape-последовательностей.
Фактически эти два метода можно комбинировать. Только один символ пробела игнорируется после 16-ричной
Таблица стилей любой версии CSS состоит из списка
В данной спецификации выражения "непосредственно перед" или "сразу после" означают отсутствие пробелов или комментариев.
В CSS2 ПА обязан игнорировать любое правило '@import' , которое появляется внутри
Предположим, например, что разборщик CSS2 обрабатывает такую таблицу стилей:
@import "subs.css";
H1 { color: blue }
@import "list.css";
Второе '@import', в соответствии с CSS2, недопустимо. Разборщик CSS2 игнорирует всё
@import "subs.css";
H1 { color: blue }
Здесь второе правило '@import' - неверное, поскольку появляется внутри
@import "subs.css";
@media print {
@import "print-main.css";
BODY { font-size: 10pt }
}
H1 {color: blue }
Это пример
{ causta: "}" + ({7} * '\'') }
Заметьте, что это неверное правило CSS2, образующее, тем не менее,
Набор правил (называемый также "правило") состоит из
В CSS2 запятая (,) имеет специальное
Например, поскольку "" это неверная лексема в селекторе CSS2, ПА CSS2 обязан игнорировать всю вторую строку и не устанавливать красный цвет в H3:
H1, H2 {color: green }
H3, H4 H5 {color: red }
H6 {color: black }
Это более сложный пример. Первые две пары фигурных скобок находятся внутри строки и не обозначают конец cелектора. Это - верный оператор CSS2.
P[example="public class foo\
{\
private int x;\
\
foo(int x) {\
this.x = x;\
}\
\
}"] { color: red }
В зависимости от способа работы
Таким образом, следующие правила:
H1 { font-weight: bold }
H1 { font-size: 12pt }
H1 { line-height: 14pt }
H1 { font-family: Helvetica }
H1 { font-variant: normal }
H1 { font-style: normal }
эквивалентны:
H1 {
font-weight: bold;
font-size: 12pt;
line-height: 14pt;
font-family: Helvetica;
font-variant: normal;
font-style: normal
}
Синтаксис значений специфицируется отдельно для каждого
ПА обязан игнорировать
Предположим, что разборщик CSS2 обрабатывает такую таблицу стилей:
H1 { color: red; font-style: 12pt } /* Неверное значение: 12pt */
P { color: blue; font-vendor: any; /* Неверное свойство: font-vendor */
font-variant: small-caps }
EM EM { font-style: normal }
Второе
H1 { color: red; }
P { color: blue; font-variant: small-caps }
EM EM { font-style: normal }
CSS допускает также SGML-ограничители комментариев ("<!--" и "-->") в определённых местах, но это не
В некоторых случаях ПА обязан игнорировать часть неверной таблицы стилей. В этой спецификации игнорирует означает, что ПА разбирает неверную часть (чтобы определить её начало и конец), но действует так, как будто её нет.
Для гарантий того, что новые
H1 { color: red; rotation: 70minutes }
ПА будет рассматривать это, как если бы в таблице было:
H1 { color: red }
" IMG { float: left } /* корректно в CSS2 */
" IMG { float: left here } /* "here" это неверное значение для 'float' */
" IMG { background: "red" } /* ключевые слова CSS2 не могут вводиться в кавычках */
" IMG { border-width: 3 } /* для размеров должны быть указаны единицы измерения */
Разборщик CSS2 примет первое правило и проигнорирует остальные, как если бы таблица была такой:
IMG { float: left }
IMG { }
IMG { }
IMG { }
ПА, соответствующий будущим спецификациям CSS, может учитывать также одно или более из следующих правил.
Неверные at-ключевые слова. ПА обязаны игнорировать неверные ключевые слова at- вместе с тем, что следует после них до (;) включительно или до
" @three-dee {
" @background-lighting {
" azimuth: 30deg;
" elevation: 190deg;
" }
" H1 { color: red }
" }
H1 { color: blue }
Правило от- '@three-dee' не входит в CSS2. Следовательно, всё
H1 { color: blue }
Значения некоторых типов могут принимать целые (обозначенные
Заметьте, что многие
Размеры имеют отношение к горизонтальным и вертикальным измерениям.
Формат значения размера (обозначаемого в этой спецификации
Некоторые
Есть два типа единиц измерения: относительные и абсолютные. Относительные размеры специфицируют
H1 { margin: 0.5em } /* em */
H1 { margin: 1ex } /* ex */
P { font-size: 12px } /* px */
Единицы измерения 'em' эквивалентны вычисленному значению
Единицы
Правило: H1 { line-height: 1.2em }
означает, что высота строки элементов H1 будет на 20% больше,
чем размер шрифта элементов H1.
С другой стороны: H1 { font-size: 1.2em }
означает, что размер шрифта элементов H1 будет на 20% больше,
чем размер шрифта, наследуемый из элементов H1.
Если они специфицированы для корня дерева документа (например, "HTML" в HTML),
При чтении с расстояния вытянутой руки 1px соответствует примерно 0.28 мм (1/90 дюйма). При печати на лазерном принтере, рассчитанном на чтение с несколько меньшего расстояния, чем вытянутая рука, (55 см, 21 дюймов), 1px составляет около 0.21 мм. На принтере с разрешением 300 точек на дюйм (dpi) это можно округлить до 3 точек (0.25 мм); на принтере с 600 dpi это можно округлить до 5 точек.
Два нижеследующих изображения иллюстрируют эффект при просмотре размера пиксела с расстояния и эффект разрешения устройства. На первом рисунке расстояние чтения 71 см (28 дюймов) даёт

[D]На втором рисунке область 1px на 1px закрывается одной точкой устройства с низким разрешением (экран компьютера), и та же самая область покрывается 16-ю точками на устройстве с высоким разрешением (как лазерный принтер 400 dpi).
В следующих правилах вычисленное значение 'text-indent' элементов H1 будет 36pt,
а не 45pt, если H1 является дочерним относительно элемента BODY:
BODY {
font-size: 12pt;
text-indent: 3em; /* т.е. 36pt */
}
H1 { font-size: 15pt }
H1 { margin: 0.5in } /* дюймы */
H2 { line-height: 3cm } /* сантиметры */
H3 { word-spacing: 4mm } /* миллиметры */
H4 { font-size: 12pt } /* пункты */
H4 { font-size: 1pc } /* пики */
В тех случаях, когда специфицированные размеры не могут поддерживаться, ПА обязаны давать
Формат процентного значения (обозначаемого в этой спецификации
Процентные значения всегда относительны к другому значению, например, размеру. Каждое свойство, допускающее процентные значения, определяет также
Поскольку дочерние элементы (обычно) наследуют вычисленные значения своих родителей,
в следующем примере дочерние от P элементы унаследуют значение в 12pt для 'line-height',
а не процентное значение (120%):
P { font-size: 10pt }
P { line-height: 120% } /* 120% от 'font-size' */
Значения URI в этой спецификации обозначаются
BODY { background: url("http://www.bg.com/pinkish.gif") }
Формат значения URI таков: 'url(' с последующим необязательным пробелом, с последующей необязательной одинарной кавычкой (') или двойной кавычкой ("), с последующим собственно URI, с последующей необязательной одинарной кавычкой (') или двойной кавычкой ("), с последующим необязательным пробелом с последующей ')'. Знаки кавычек должны быть одинаковыми (двойными или одинарными).
Пример без кавычек:
LI { list-style: url(http://www.redballs.com/redball.png) disc }
Скобки, запятые, пробельные символы, одинарные (') и двойные (") кавычки в URI обязаны вводиться с помощью escape-последовательностей с обратным слэшем: '\(', '\)', '\,'.
В зависимости от типа URI, может иметься возможность также записывать вышеуказанные символы как URI-
Для того, чтобы создать модульные таблицы стилей, не зависящие от абсолютного размещения ресурса, авторы могут использовать
Предположим, имеется такое правило:
BODY { background: url("yellow") }
размещённое в таблице стилей с URI:
http://www.myorg.org/style/basic.css
Фон элемента BODY в документе-источнике будет заполнен каким-нибудь изображением,
обозначенный ресурсом URI:
http://www.myorg.org/style/yellow
ПА могут по-разному обрабатывать URI, обозначающие несуществующий или необрабатываемый ресурс
Счётчики обозначаются
Чтобы обратиться к последовательности вложенных счётчиков с одним именем, обозначение будет: 'counters(<identifier>,
В CSS2 к значениям счётчиков можно обратиться только из
Вот таблица стилей, нумерующая параграфы (P) для каждой главы (H1).
Параграфы нумеруются римскими цифрами с последующими точкой и пробелом:
P {counter-increment: par-num}
H1 {counter-reset: par-num}
P:before {content: counter(par-num, upper-roman) ". "}
Счётчики вне области видимости какого-либо '
Список названий цветов: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white и yellow. Эти 16 цветов определены в HTML 4.0 ([HTML40]). Пользователь может дополнительно специфицировать ключевые слова, соответствующие цветам, используемым определёнными объектами в среде пользователя. Дополнительную информацию см. в системных цветах.
BODY {color: black; background: white }
H1 { color: maroon }
H2 { color: olive }
Модель цветов RGB используется в числовых спецификациях цвета. Во всех данных примерах специфицируется один и тот же цвет:
EM { color: #f00 } /* #rgb */
EM { color: #ff0000 } /* #rrggbb */
EM { color: rgb(255,0,0) } /* диапазон целых чисел 0 - 255 */
EM { color: rgb(100%, 0%, 0%) } /* диапазон чисел с плавающей точкой 0.0% - 100.0% */
Формат значения RGB в 16-ричной записи - '#' за которым сразу идут три или шесть 16-ричных символов. Трёхсимвольная запись RGB (#rgb) конвертируется в шестисимвольную форму (#rrggbb) путём дублирования цифр, но не дополнением нулями. Например, #fb0 расширяется до #ffbb00. Это гарантирует, что белый (#ffffff) можно специфицировать сокращённой записью (#fff) и удалить зависимость от глубины цвета на дисплее.
Формат значения RGB в функциональной записи - 'rgb(' за которым идёт список разделённых запятыми трёх числовых значений (или трёх целых, или трёх процентных) с последующей ')'. Целое
Все цвета RGB специфицированы в цветовом пространстве sRGB (см. [SRGB] ). ПА могут различаться в том, насколько точно они представляют эти цвета, но использование sRGB предоставляет недвусмысленное и объективно измеряемое определение того, каким должен быть цвет, соответствующий международным стандартам (см. [COLORIMETRY] ).
Соответствующие ПА могут ограничивать свои возможности вывода цвета для выполнения коррекции гаммы цветов. sRGB специфицирует гамму дисплея в 2.2 от специфицированных условий просмотра. ПА должны уточнить цвет, заданный в CSS, так чтобы в сочетании с 'натуральной' гаммой дисплея выводного устройства воспроизводилась эффективная гамма дисплея в 2.2. См. дополнительные детали в разделе коррекция гаммы. Обратите внимание, что воздействие производится только на цвета, специфицированные в CSS; например, от изображений ожидается сопровождающая их собственная цветовая информация.
Значения вне гаммы устройства должны усекаться: значения red, green и blue обязаны измениться, чтобы войти в рамки диапазона, поддерживаемого устройством. Для типичного CRT-монитора, чья гамма устройства - та же самая, что и sRGB, следующие три правила эквивалентны:
EM { color: rgb(255,0,0) } /* диапазон целых 0 - 255 */
EM { color: rgb(300,0,0) } /* усекается до rgb(255,0,0) */
EM { color: rgb(255,-10,0) } /* усекается до rgb(255,0,0) */
EM { color: rgb(110%, 0%, 0%) } /* усекается до rgb(100%,0%,0%) */
Другие устройства, такие как принтеры, имеют гаммы, отличные от sRGB;
некоторые цвета вне диапазона 0..255 sRGB будут презентабельными
(в пределах гаммы устройства), в то время как другие цвета в пределах
диапазона 0..255 sRGB будут вне гаммы устройства и будут, таким образом, усечены.
Угловые значения (обозначаемые в тексте
Их формат - необязательный знак ('+' или '-', с '+' по умолчанию), сразу за которым следует
Единицами измерения углов являются:
Угловые значения могут быть негативными. Они должны быть нормализованы ПАгентом до диапазона 0-360deg. Например, -10deg и 350deg эквивалентны.
Для примера, прямой угол - '90deg' или '100grad', или '1.570796326794897rad'.
Временные значения (обозначаемые в тексте
Их формат:
Значения времени не могут быть негативными.
Значения частот (обозначаемые в тексте
Их формат: <number>, сразу за которым идёт
Значения частоты не могут быть негативными.
Например, 200Hz (или 200hz) - это басовый звук, а 6kHz (или 6khz) - средний регистр.
"this is a 'string'" "this is a \"string\"" 'this is a "string"' 'this is a \'string\''
Можно разбивать
A[TITLE="a not s\
o very long title"] {/*...*/}
A[TITLE="a not so very long title"] {/*...*/}
Таблица стилей CSS это последовательность символов из Universal Character Set/
Если таблица стилей встроена в другой документ, например, элемент STYLE или атрибут "style" в HTML, таблица стилей разделяет использование
Если таблица стилей находится в отдельном файле, ПА обязаны учитывать следующий приоритет при определении
Не более одного правила
@charset "ISO-8859-1";
В данной спецификации не определено, какие
Обратите внимание, что опора на конструкцию
Таблице стилей может понадобиться обратиться к символам, которые невозможно представить в текущей
Escape-механизм символов должен использоваться только тогда, когда необходимо вывести таким способом только несколько символов. Если большая часть документа требует этого, авторы должны кодировать документ в более подходящей кодировке (например, если документ содержит много греческих символов, автор может использовать "ISO-8859-7" или "UTF-8").
Процессоры-посредники, использующие другие
Соответствующие ПА обязаны корректно отображать в Unicode все символы любой кодировки, которые они могут распознать (или они обязаны вести себя так, как будто они это делают).
Например, документ, передаваемый как ISO-8859-1 (Latin-1), не может содержать напрямую греческую букву: "κουρος" (по-гречески: "kouros"), которая должна быть записана как "\3BA\3BF\3C5\3C1\3BF\3C2".
<SPAN style="voice-family: D\FC rst">...</SPAN>
вместо:
<SPAN style="voice-family: Dürst">...</SPAN>
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.