Escape-механизм символов должен использоваться только тогда, когда необходимо вывести таким способом только несколько символов. Если большая часть документа требует этого, авторы должны кодировать документ в более подходящей кодировке (например, если документ содержит много греческих символов, автор может использовать "ISO-8859-7" или "UTF-8").
Процессоры-посредники, использующие другие кодировки символов, могут транслировать эти escape-последовательности в последовательности байтов кодировки. Процессоры-посредники не обязаны, с другой стороны, изменять escape-последовательности, отменяющие специальные значения символов ASCII.
Соответствующие ПА обязаны корректно отображать в Unicode все символы любой кодировки, которые они могут распознать (или они обязаны вести себя так, как будто они это делают).
Например, документ, передаваемый как ISO-8859-1 (Latin-1), не может содержать напрямую греческую букву: "κουρος" (по-гречески: "kouros"), которая должна быть записана как "\3BA\3BF\3C5\3C1\3BF\3C2".
Примечание. В HTML 4.0 числовые мнемоники интерпретируются в значениях атрибута "style", но не в содержимом элемента STYLE. Из-за этой асимметрии мы рекомендуем, чтобы авторы использовали escape-механизм CSS вместо числовых мнемоник и для атрибута "style", и для элемента STYLE. Например, мы рекомендуем:
<SPAN style="voice-family: D\FC rst">...</SPAN>
вместо:
<SPAN style="voice-family: Dürst">...</SPAN>
Лекция 5. Селекторы
В CSS правила совпадения символов определяют, какое правило стиля применить к элементам дерева документа. Такие блоки символов (патэрн), называемые селекторами, могут иметь диапазон имён от простых имён элементов до сложных контекстуальных блоков. Если все условия в патэрн верны для конкретного элемента, селектор совпадает с элементом.
Чувствительность к регистру имён элементов в селекторах зависит от языка документа. Например, в HTML имена элементов нечувствительны к регистру, а в XML - чувствительны к регистру.
В этой таблице суммирован синтаксис селекторов CSS2:
Патэрн | Смысл | Описан в разделе |
---|---|---|
* | совпадает любой элемент. | Универсальный селектор |
E | совпадает любой элемент E (т.е. элемент типа E). | Типы селекторов |
E F | совпадает любой элемент F, являющийся потомком элемента E. | Селекторы-потомки |
E > F | совпадает любой элемент F, являющийся дочерним относительно элемента E. | Дочерние селекторы |
E:first-child | совпадает элемент E, если E является первым дочерним элементом своего родителя. | Псевдокласс :first-child |
E:link E:visited | совпадает элемент E, если E является якорем ещё не посещённого ресурса гиперссылки (:link) или уже посещённого (:visited). | Псевдоклассы гиперссылки |
E:active E:hover E:focus | совпадает элемент E во время определённых действий пользователя. | Динамические псевдоклассы |
E:lang(c) | совпадает элемент типа E, если он на (человеческом) языке с (язык документа специфицирует то, как определяется язык). | Псевдокласс :lang() |
E + F | совпадает любой элемент F, непосредственно перед которым идёт элемент E. | Смежные селекторы |
E[foo] | совпадает любой элемент E с установленным атрибутом "foo" (с каким-либо значением). | Селекторы атрибутов |
E[foo="warning"] | совпадает любой элемент E, чьё значение атрибута "foo" точно равно "warning". | Селекторы атрибутов |
E [foo~="warning"] | совпадает любой элемент E, чьё значение атрибута "foo" является списком разделённых пробелами значений, одно из которых точно равно "warning". | Селекторы атрибутов |
E [lang|="en"] | совпадает любой элемент E, чей атрибут "lang" содержит список разделённых дефисами значений, начинающийся (слева) с "en". | Селекторы атрибутов |
DIV.warning | Только в HTML. То же, что DIV[class~="warning"]. | Селекторы классов |
E#myid | совпадает любой ID элемента E, эквивалентный "myid". | Селекторы ID |
Простой селектор - селектор типа или универсальный селектор, непосредственно после которого идёт ноль или более селекторов атрибутов, селекторов ID или псевдоклассов в любом порядке. Простой селектор совпадает, если совпадают все его компоненты.
Селектор это цепь из одного или более простых селекторов, разделённых комбинаторами. Комбинаторами являются: пробелы, ">" и "+". Пробелы могут появляться между комбинатором и простыми селекторами вокруг него.
Элементы дерева документов, совпадающие с селектором, называются субъектами селектора. Cелектор, состоящий из одного простого селектора, совпадает с любым элементом, удовлетворяющим его условиям. Предопределённость простого селектора и комбинатора в цепи вызывает дополнительные ограничения для совпадения, так что субъекты селектора всегда являются поднабором элементов, совпадающим с самым правым простым селектором.