
CSSの!importantとは
スタイルシートの適用される優先順位を上げることができる宣言です。
例えば.foo .bar { color: #f00; } よりも .baz { color: #00f !important; } のほうが優先順位が高くなるので後者が適用されます。
.foo .bar {
color: #f00;
}
.baz {
color: #00f !important;
}
!importantを付けると優先順位が一気に上がってしまうため、以下のようにaタグなどに付いていると!importantをたくさん付けなくてはいけなくなります。
a {
color: #000 !important;
}
.red {
color: red !important;
}
.orange {
color: orange !important;
}
.green {
color: green !important;
}
この問題はCSSの変数(カスタムプロパティ)を使用して上書きを行い、以下のように書けば解決できます。
a {
color: #000 !important;
}
a {
color: var(--link-color) !important;
}
.red {
--link-color: red;
}
.orange {
--link-color: orange;
}
.green {
--link-color: green;
}
読み込んだCSSファイル内に!importantが使用されていることがたまにありますが、!importantを使いまくるとコードの可読性が低下するので、代わりに変数(カスタムプロパティ)をうまく利用して!importantの記述は減らすことをオススメします。