Правила обработки ошибок грамматического разбора
В некоторых случаях ПА обязан игнорировать часть неверной таблицы стилей. В этой спецификации игнорирует означает, что ПА разбирает неверную часть (чтобы определить её начало и конец), но действует так, как будто её нет.
Для гарантий того, что новые свойства и новые значения для существующих свойств смогут быть добавлены в будущем, от ПА требуется соблюдение следующих правил при обработке следующих сценариев:
- Неизвестные свойства. ПА обязан игнорировать
объявление с неизвестным свойством. Например, если в таблице стилей указано:
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. Следовательно, всё at-правило (до третьей правой фигурной скобки включительно) игнорируется. ПА CSS2 игнорирует его, уменьшая таблицу до:
H1 { color: blue }