Опубликован: 06.06.2006 | Доступ: свободный | Студентов: 3910 / 694 | Оценка: 4.34 / 4.02 | Длительность: 21:23:00
Лекция 4:

Синтаксис CSS2 и базовые типы данных

Правила обработки ошибок грамматического разбора

В некоторых случаях ПА обязан игнорировать часть неверной таблицы стилей. В этой спецификации игнорирует означает, что ПА разбирает неверную часть (чтобы определить её начало и конец), но действует так, как будто её нет.

Для гарантий того, что новые cвойства и новые значения для существующих свойств смогут быть добавлены в будущем, от ПА требуется соблюдение следующих правил при обработке следующих сценариев:

  • Неизвестные cвойства. ПА обязан игнорировать объявление с неизвестным свойством. Например, если в таблице стилей указано:
    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 }