2014-11-18 4 views
-1

CSS at-rules (например, @import) существуют с CSS2. В CSS3 медленно добавляются новые правила, такие как @supports с разным уровнем поддержки браузеров. Как основные браузеры обрабатывают неподдерживаемые правила, которые они не распознают? Они просто игнорируются? Или они рассматриваются как синтаксические ошибки?Как браузеры обрабатывают непризнанные правила?

Например, если бы я использовал правило @supports, которое не поддерживается какой-либо версией IE, будет ли IE терпеть неудачу с синтаксической ошибкой или будет ли это игнорироваться?

@supports (pointer-events: none) { 
    ... 
} 

ответ

2

CSS-2,1 спецификация говорит

4.2 Rules for handling parsing errors

В-правил с неизвестным в-ключевых слов.

Агенты пользователей должны ignore недействительный на уровне ключевых слов, вместе со всем после него, вплоть до конца блока, который содержит недопустимый на уровне ключевых слов, или до и включая следующую точку с запятой (;), или вплоть до следующего блока ({...}), в зависимости от того, что наступит раньше.

Для примера рассмотрим следующее:

@three-dee { 
    @background-lighting { 
    azimuth: 30deg; 
    elevation: 190deg; 
    } 
    h1 { color: red } 
} 
h1 { color: blue } 

@three-dee в властвуй не является частью CSS 2.1. Таким образом, все правило (вплоть до, и в том числе, третья правая фигурная скобка) составляет ignored. CSS-агент пользователя 2.1 ignores его, эффективно уменьшая лист стилей для:

h1 { color: blue } 
Смежные вопросы