!important
CSSでこれを記述すると、スタイルの変更を強制することができる。
あまり使うべきではないと思う
他のスタイルで打ち消すのが面倒になる
!important
を修正しなければならなくなることが多い。
修正できない(しにくい)場合もある
修正できないと、自分のページ上で個人的に用意したUserCSSを使うことができずに困ることがある
>!important ルールがスタイル宣言で使われたとき、それが宣言リストのどこであっても、この宣言は CSS 内で作られたその他の宣言を上書きします。技術的には !important は詳細度とは無関係ですが、直接作用します。しかし、スタイルの自然のカスケードを破壊するためデバッグが難しくなるので、 !important を使用することは悪い習慣であり、使用を避けるべきです。
>!important を考える前に、常に詳細度を使用する方法を探しましょう。
逆に使うべき時
絶対に適用されて欲しい時
記法を追加して背景色と文字色を変えた
→ どちらか片方を変えられてしまうと表示がおかしくなってしまうので困る
困るからと言って
!important
で
押しつけ強制すべきではないと思う
メンテナンスコストを下げたい時
自分のページのUserCSSが、SettingsのUserCSS(
ProjectCSS)によって不意に変更されるのを防ぎたい等
セレクタの詳細度を上げるだけではどうしようもない時
htmlのタグ自身に style
属性がある場合
!important
を
!important
で潰し合う様はまるで
核戦争核兵器扱いは草
UserCSSの場合、大抵は要素セレクタをつければ
!important
は不要になる
.line
を div.line
に置き換えるとか
ScrapboxのCSS(
app.css)のセレクタはほとんどがクラス名のみ(or 要素名のみ)で書かれている
UserCSSの場合は元々の構造を無視して暴力的に上書きしているのだから、むしろ!importantを使うべきなのかと思っていた
(UserCSSが元のCSSを上書きする理由は「より詳細だから」ではないので)
どちらが良いんだろう..?
あ、UserCSSで使う場合を考えているのか
UserCSS内で1つの要素に対して複数個importantを使いたいこともないだろうしimportantで解決してもいいかも
「app.css」->「Settings」->「自分のページ」という順でスタイルの上書きがされることがあるので、Settingsに置くUserCSSは!importantがない方が親切かなと思っています
この理屈でいくと、自分のページの!importantを使ったCSSはSettingsに移植できなくなるのか
詳細度をちまちま計算or比較しないといけないのもうーんという気がしてしまう
他の記述の詳細度を確認しにいかないといけない
仕方ないのだろうか
詳細度ごとに記述をグループ分けしておくという手はある?
グローバル変数とローカル変数みたいな
詳細度を直接数字で指定するとどうか
今まで自然にいい感じになっていたのが面倒になるだけか
でも
z-index
(レイヤーの表示順)は数値指定なんだよなー
それを数値でどうにかしてるなら、詳細度も数値指定できていいような気がしなくもない
わざわざ計算しなくても、ブラウザの開発者ツールを使えば一発でわかります
右側のスタイルタブでは詳細度が高いものほど上に表示されている
なるほど
これ便利だけどclassを動的に生成している場合はデプロイごとに切り替わってしまう
この動的生成もCSSのグローバル地獄を解消するためだと思うとCSSはなんと罪深いことか
TwitchがまさにそうなんだけどTwitchはさらに!important使いまくってて最悪である
内部値があるというだけでもめんどくささが増している気がする
もっといい方法はなかったのだろうか…
詳細度を変えるために、詳細度を変えるためにある記述(
!important
)ではなく、要素セレクタを加えるという一見直感的でない記述によって対処しないといけないという点も違和感
でも「詳細にする」という意味では 重要です!
と言うよりもセレクタを詳細にするほうが直感的か
優先順位を上げたいと思っている人にとっては !important
のほうが直感的かも
単純に下に書いたスタイルが優先されるんでいいじゃん…とは思ってる
たしかに
CSSの仕様はごちゃごちゃしすぎててめんどくさい
ググりづらい
開発環境が「今定義したやつとぶつかる指定があるけど、どっちを優先する?ちなみにデフォルトだと詳細度を元にこっちを優先するので、それでいいなら何も操作しなくていいよ!」とやってくれるのが理想だと思うw
字面がちょっと面白い
「インポータント!」みたいな
「我重要ぞ!」
安直すぎんかって感じが面白い
CSSを設計する立場の人は使うべきではない
設計者とは別に後から追加する場合
DOMを操作できるならidやclassを使うべき
DOM操作もできない場合で確実にスタイルを上書きしたい場合は使う
スタイル衝突する可能性を許容するなら使わない
!important衝突が起きるなら設計者がおかしい
たくさんの人がCSS追加する状況って結構面白いんだな
一般論で考えると追加する人たちできちんと足並み揃えろと言われそう
>!important was added for one reason only: laws in the US that require certain text to be in a given font-size. !important stops the cascade from changing it.
>Anything else is probably misuse, and a sign you may not understand the cascade properly.
Google翻訳:
>!important が追加された理由はただ 1 つ、米国の法律で特定のテキストを特定のフォント サイズにする必要があるためです。!important はカスケードによる変更を阻止します。
>それ以外の場合はおそらく誤用であり、カスケードを正しく理解していない可能性があります。
>米国の法的な文書では特定のフォントサイズを使用することが義務付けられており、CSSの !important はそれを遵守するために誕生したらしい @stevenpemberton
だとほとんどの場合これを使わないと適用されない
ダブル!imporant早く実装して