CSSで!importantとはどういう意味ですか?


409

!importantCSS とはどういう意味ですか?

CSS 2で利用できますか?CSS 3?

どこでサポートされていますか?すべての最新のブラウザ?



17
...可能な限り避けるべきもの。
スコット

回答:


400

それは本質的に、それが言うことを意味します。「これは重要です。後続のルールを無視し、通常の特異性の問題があれば、このルールを適用しください!

通常の使用では、外部スタイルシートで定義されたルールheadは、ドキュメントので定義されたスタイルによって上書きされ、次に、それ自体が要素自体のインラインスタイルによって上書きされます(セレクターの特定性が等しいと仮定)。!important「属性」(?)を使用してルールを定義すると、「後の」ルールが「前の」ルールを上書きすることに関する通常の懸念が破棄されます。

また、通常、より具体的なルールは、より具体的でないルールをオーバーライドします。そう:

a {
    /* css */
}

通常、以下によって却下されます。

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

後者のセレクタは、より具体的な(そしてそれは、通常、問題より具体的なセレクタが(で発見されていないところであるとしてhead)、または外部スタイルシートにはなりまだ少ない固有のセレクタをオーバーライドする(インラインスタイル属性ます常に 'more-'または 'less-'の特定のセレクターは常により具体的であるため、オーバーライドします。

ただし、!importantあまり具体的でないセレクターのCSS宣言に追加した場合は、それが優先されます。

使用に!importantは目的がありますが(私はそれらについて考えるのに苦労しますが)、核爆発を使用してキツネが鶏を殺すのを止めるのとよく似ています。はい、キツネは殺されますが、ニワトリも殺されます。そして近所。

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


253
また、多くのプログラミング言語では接頭辞が!なので、多くの開発者を混乱させます。は意味しません
rustyx

19
!importantの1つの目的は、他の人のCSSを意図的に上書きして、自分よりも具体的である可能性が高い、GreaseMonkeyスクリプトで使用することです。
Noumenon 2014

1
公式にはW3 はこれを「ルール」と呼んでいます。
JDスミス

5
少なくともそれは皮肉ではなく、important!(重要ではない)と言っています
user3553260

2
「通常の使用では、外部スタイルシートで定義されたルールは、ドキュメントのヘッドで定義されたスタイルによって無効にされます」。間違っています。
jlguenego 2017年

130

重要なルールは、CSSをカスケードする方法ですが、常に最も重要であると思われるルールを適用することもできます。!importantプロパティを持つルールは、そのルールがCSSドキュメントのどこに出現しても、常に適用されます。

したがって、次の場合:

.class {
   color:red !important;
}
.outerClass .class {
   color:blue;
}

重要なルールは適用されたものになります(特異性は数えません)

私は!importantCSS1に登場したと思いますので、すべてのブラウザーがそれをサポートします(IE4からIE6、部分的な実装、IE7 +フル)

また、他の人と作業している場合は他のプロパティをオーバーライドできるため、これはあまり頻繁に使用したくないものです。


1
IE4 +、実際には、バグ、までと6を含む
BoltClock

15
!一部の言語ではNOTの記号として混乱が発生しますが、現在は明確になっています。
Si8、2014年

2
特に、を使用するための構文が含まれていてうれしいです!important。CSSは他の言語とは十分に異なり、特定のものの使い方を忘れがちです。
blainarmstrong、2015年

3
@ Si8-はい、その混乱のために、私は常に「彼ら」がとしてimportant!IMPORTANT!はなく、として定義すべきであると考えていました!important。前に句読点を付けてそれを定義した理由を誰か(これを読む可能性のある人)が知っているのだろうか?明らかに、今それを変更するには遅すぎる。
Kevin Fegan 2018

22

!important CSS1の一部です。

対応ブラウザ:IE5.5以降、Firefox 1以降、Safari 3以降、Chrome 1以降。

それは、次のようなものを意味します:

他に何も重要でない場合は、私を使用してください!

カントはそれをよりよく言う。


5
!importantSafari 3以降のみに限定されません。他のすべての非IEブラウザーと同様に、最初からサポートしてきました。IEは、以降のバージョン4から、それを理解し、それが唯一のバージョン7からバグのないスタートをサポート
BoltClock

12

起点によるソートが行われるときに、CSSカスケードでのソートに影響を与えるために使用されます。他の回答でここに述べられているような特定性とは何の関係もありません。

優先度は、最低から最高までです。

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

その後、パイに指がまだ残っているルールが特定されます。

参照:


@ fabian-barneyが指摘したよう!importantに、カスケード順序 developer.mozilla.org/en-US/docs/Web/CSS/Cascadeの修飾子です(参照用の表を参照)。
Doomjunky

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.