2

私の友人は!、Cascading Style Sheets のキーの後にどの単語を使用してもかまわないと述べていますが、Internet Explorer 6 または 7 である限り、その重みはさらに増します。

これは、私が書くことができ!notimportant、それが依然として重要であると見なされることを意味します。このスレッドに対する私の質問は次のとおりです。これは本当ですか?

私は Windows マシンを持っていないため (職場や自宅にはないため)、自分で試すことはできません。でも知っておくと面白いでしょう。

前もって感謝します。

4

1 に答える 1

5

それは正しいです。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が無効 (!空白の代わりに直後にコメントが続く)として報告する場合、これはバリデータ パーサーのバグであることに注意してください。文法的には間違いなく有効です。

于 2012-11-21T08:52:21.460 に答える