2012-02-12 32 views
269

可能性の重複:
What are the implications of using “!important” in CSS?
How do you read !important in CSS?CSSの意味は何ですか?

CSSで!importantは何を意味するのでしょうか?
css2、css3、IE専用ですか?

+2

http://www.w3.org/TR/CSS2/cascade.html#important-rules – j08691

+9

...何か避けるためにいつでも可能なとき。 – Scott

+2

の可能な複製[どのようにあなたはCSSで重要なのですか?](http://stackoverflow.com/questions/7369216/how-do-you-read-important-in-css)、[ CSSの "重要な"?(http://stackoverflow.com/questions/3706819/what-are-the-implications-of-using-important-in-css)また、以下を参照してください。 css?](http://stackoverflow.com/questions/5701149/when-to-use-important-property-in-css)、[日時を節約するために「!important」を使用するタイミング(CSSを使用する場合) ](http://stackoverflow.com/questions/2042497/when-to-use-important-to-save-the-day-when-working-with-css) –

答えて

275

実質的には、これは重要であり、後続のルールを無視し、通常の特定の問題は、このルールを適用します。

通常、外部スタイルシートで定義されたルールは、文書のheadで定義されているスタイルで上書きされます。これは、要素自体のインラインスタイルによって上書きされます(セレクタ)。 !important '属性'(?)を持つルールを定義すると、 'それよりも前の'ルールを上書きする '後の'ルールに関する通常の懸念が破棄されます。

通常、より具体的なルールは、あまり具体的でないルールを上書きします。後者のセレクタは、より具体的である(そして、それは、通常、問題より具体的なセレクタが(で発見されていない場合など

body div #elementID ul li a { 
    /* css */ 
} 

:だから:

a { 
    /* css */ 
} 

は通常で却下されていますheadまたは外部スタイルシート)まだは、より具体的でないセレクタを無効にします(インラインスタイルの属性はです)。は「more-」または「less-」の特定のセレクタを無効にします常により具体的です。

しかし、具体的でないセレクタのCSS宣言に!importantを追加すると、その優先度が優先されます。

!importantを使うと、私はそれらのことを考えるのに苦労しますが、あなたのニワトリを殺すのを止めるためには核爆発を使うのが好きです。はい、キツネは殺されますが、ニワトリも殺されます。そして近所。

これはまた、あなたのCSSのデバッグを(個人的、経験的、経験から)悪夢にします。

+145

多くの開発者にとっては、多くのプログラミングのように混乱しますプレフィックスの言語* not *を意味する。 – rustyx

+8

!importantの目的の1つはGreaseMonkeyスクリプトの中にあり、あなたよりも特定の可能性の高い他の人のCSSを意図的に上書きしています。 – Noumenon

+0

公式にW3 [http://www.w3.org/TR/CSS2/cascade.html#important-rules]に「ルール」と呼ばれています。 –

18

!importantは、CSS1の一部です。

それをサポートするブラウザ:IE5.5 +、Firefox 1+、Safari 3+、Chrome 1+。

それは何か、意味:周りの他に重要なものがない場合

は、私を使用してください!

+4

'!important'はSafari 3以上に限定されません。他のすべてのIE以外のブラウザーと同様、最初からサポートしています。 IEはバージョン4以降では理解していますが、バージョン7以降のバグをサポートしていません。 – BoltClock

5

cssカスケードの優先度の優先度のルールを変更します。 the CSS2 specを参照してください。

85

!重要なルールは、CSSカスケードを作成する方法ですが、最も重要であると感じているルールは常に適用されます( )。 !重要なプロパティ を持つルールは、その ルールがCSSドキュメントに表示される場所に関係なく常に適用されます。

だから、あなたは以下の持っている場合:

.class { 
    color:red !important; 
} 
.outerClass .class { 
    color:blue; 
} 
重要とのルールが一つは、私は !importantはので、すべてのブラウザがサポートCSS1に登場信じる

specificityを数えていない)が適用されます

それは部分的な実装ではIE4からIE6へ、IE7は完全に)

また、かなり頻繁に使いたくないのです。彼女の人々はあなたが他の特性を上書きすることができます。

+1

IE4 +、実際には、6までのバグがあります。 – BoltClock

+12

'!'は、言語はそれほど明確です。 – Si8

+2

私はあなたが '!important'を使うための構文を含んでいることを特に嬉しく思っています。 CSSは、他の言語とは十分に異なっているため、特定のものを使用する方法を忘れることは簡単です。 – blainarmstrong

9

CSSカスケードのソートに影響を与えるために使用されます。 他の回答に記載されているような特異性とは関係ありません。ここで

は、最低から最高の優先順位です:!

  1. ブラウザスタイル
  2. ユーザースタイルシート宣言(!重要なし)
  3. 著者スタイルシート宣言(!重要なし)
  4. が重要著者スタイルシート
  5. 重要なユーザスタイルシート

の後では、まだパイの中に指を持っているルールのためにその特異性が起こる。

参考文献:

+2

secifity =>特異性? –

関連する問題