それは正しいです。IE6/IE7 は、宣言を完全に無視するのではなく!
、識別子と空白が続くものをトークンとして誤って扱います。!important
参考文献:
仕様では、重要な宣言として認識されるように!
、大文字と小文字を区別せず、オプションの空白とそれらを区切るコメントのみを続けることができると述べています。これは文法important
で見ることができます:
"!"({w}|{comment})*{I}{M}{P}{O}{R}{T}{A}{N}{T} {return IMPORTANT_SYM;}
したがって、これらは有効な重要な宣言ですが、次のとおりです。
background: transparent !important;
background: transparent !IMPORTANT;
background: transparent !ImPoRtAnT;
background: transparent ! important;
background: transparent ! important;
background: transparent ! /**/important;
background: transparent ! /**/ /**/ important;
background: transparent !/**/important;
これらは無効であり、無視する必要があります (背景を適用しようとさえしないでください):
background: transparent !notimportant;
background: transparent !NOTIMPORTANT;
background: transparent !NoTiMpOrTaNt;
background: transparent ! notimportant;
background: transparent ! notimportant;
background: transparent !ie7;
background: transparent !abc;
background: transparent !_;
しかし、IE6/7 はそれらすべてを有効な!important
ステートメントのように扱い、背景を適用します。IE8 以降では正しく無視されますが、これらのバージョンの互換表示では再現できる場合とできない場合があります。
Jigsaw W3C CSS Validator!/**/important
が無効 (!
空白の代わりに直後にコメントが続く)として報告する場合、これはバリデータ パーサーのバグであることに注意してください。文法的には間違いなく有効です。