Поиск
Правила обработки ошибок, возникающих на этапе синтаксического анализа
В некоторых случаях агенты пользователей должны игнорировать часть некорректной таблицы стилей. В данной спецификации термин игнорировать означает следующее. Агент пользователя осуществляет синтаксический анализ некорректной части таблицы для того, чтобы определить ее начало и конец, а затем действует так, как если бы этой части не существовало в таблице.
Для обеспечения возможности добавления новых свойств и новых значений для уже существующих свойств агенты пользователей в перечисленных ниже ситуациях должны выполнять следующие правила:
- Неизвестные свойства. Агенты пользователей должны игнорировать объявления, содержащие неизвестные свойства. Например, следующую таблицу стилей:
- Недопустимые значения. Агенты пользователей должны игнорировать объявления, содержащие недопустимые значения. Например:
- Некорректные ключевые слова at. Агенты пользователей должны игнорировать некорректные ключевые слова at и весь следующий за ними текст до первой точки с запятой (";") или первого {}-блока включительно, в зависимости от того, что встретится первым. Рассмотрим следующий пример:
H1 { color: red; rotation: 70minutes }
агент пользователя должен обрабатывать, как если бы она выглядела так:
H1 { color: red }
IMG { float: left } /* корректное объявление */
IMG { float: left here } /* "here" не является значением */
/* свойства 'float' */
IMG { background: "red" } /* ключевое слово заключено в кавычки */
IMG { border-width: 3 } /* не определена единица измерения */
/* для значения длины */
Анализатор CSS2 должен применить первое правило и проигнорировать остальные:
IMG { float: left }
IMG { }
IMG { }
IMG { }
Возможно, что агент пользователя, соответствующий спецификации CSS более высокого уровня, сможет обрабатывать большее количество правил.
@three-dee {
@background-lighting {
azimuth: 30deg;
elevation: 190deg;
}
H1 { color: red }
}
H1 { color: blue }
Правило at '@three-dee' не принадлежит языку CSS2. Поэтому все правило до третьей правой фигурной скобки включительно игнорируется. Агент пользователя с поддержкой CSS2 проигнорирует его, сократив таблицу стилей до следующего вида:
H1 { color: blue }