generated at
!important

CSSでこれを記述すると、スタイルの変更を強制することができる。
example.css
.foo { font-size: 16px !important; }

何故かCSSが効かないという時に使われがちな気がするMijinko_SD
あまり使うべきではないと思うMijinko_SD
CSSセレクタの優先順位(詳細度)を上げれば不要になる場合がある
他のスタイルで打ち消すのが面倒になる
!important を修正しなければならなくなることが多い。
修正できない(しにくい)場合もある
井戸端の場合はSettingsのstyle.cssが該当するかとMijinko_SD
修正できないと、自分のページ上で個人的に用意したUserCSSを使うことができずに困ることがある
MDN上でも使用を避けるべきと記述されている
>!important ルールがスタイル宣言で使われたとき、それが宣言リストのどこであっても、この宣言は CSS 内で作られたその他の宣言を上書きします。技術的には !important は詳細度とは無関係ですが、直接作用します。しかし、スタイルの自然のカスケードを破壊するためデバッグが難しくなるので、 !important を使用することは悪い習慣であり、使用を避けるべきです。
>(中略)
>!important を考える前に、常に詳細度を使用する方法を探しましょう。
逆に使うべき時
絶対に適用されて欲しい時
記法を追加して背景色と文字色を変えた
→ どちらか片方を変えられてしまうと表示がおかしくなってしまうので困る
困るからと言って !important 押しつけ強制すべきではないと思うMijinko_SD
メンテナンスコストを下げたい時
自分のページのUserCSSが、SettingsのUserCSS(ProjectCSS)によって不意に変更されるのを防ぎたい等
セレクタの詳細度を上げるだけではどうしようもない時
htmlのタグ自身に style 属性がある場合

下の図によると、!importantは核兵器らしいMijinko_SD
!important !important で潰し合う様はまるで核戦争
核兵器扱いは草takker

UserCSSの場合、大抵は要素セレクタをつければ !important は不要になるMijinko_SD
.line div.line に置き換えるとか
ScrapboxのCSS(app.css)のセレクタはほとんどがクラス名のみ(or 要素名のみ)で書かれている

UserCSSの場合は元々の構造を無視して暴力的に上書きしているのだから、むしろ!importantを使うべきなのかと思っていたblu3mo
(UserCSSが元のCSSを上書きする理由は「より詳細だから」ではないので)
どちらが良いんだろう..?
一般的な作法という意味での良し悪しは!important#6202c8c87838e300008a4bf1だと思います基素
あ、UserCSSで使う場合を考えているのか
UserCSS内で1つの要素に対して複数個importantを使いたいこともないだろうしimportantで解決してもいいかも
「app.css」->「Settings」->「自分のページ」という順でスタイルの上書きがされることがあるので、Settingsに置くUserCSSは!importantがない方が親切かなと思っていますMijinko_SD
この理屈でいくと、自分のページの!importantを使ったCSSはSettingsに移植できなくなるのか

詳細度をちまちま計算or比較しないといけないのもうーんという気がしてしまうyosider
他の記述の詳細度を確認しにいかないといけない
仕方ないのだろうか
詳細度ごとに記述をグループ分けしておくという手はある?
グローバル変数とローカル変数みたいな
詳細度を直接数字で指定するとどうか
今まで自然にいい感じになっていたのが面倒になるだけか
でも z-index (レイヤーの表示順)は数値指定なんだよなーMijinko_SD
それを数値でどうにかしてるなら、詳細度も数値指定できていいような気がしなくもない
わざわざ計算しなくても、ブラウザの開発者ツールを使えば一発でわかりますMijinko_SD
右側のスタイルタブでは詳細度が高いものほど上に表示されている
なるほどyosidertakker
これ便利だけどclassを動的に生成している場合はデプロイごとに切り替わってしまうmtane0412
この動的生成もCSSのグローバル地獄を解消するためだと思うとCSSはなんと罪深いことか
TwitchがまさにそうなんだけどTwitchはさらに!important使いまくってて最悪である
内部値があるというだけでもめんどくささが増している気がするMijinko_SDyosider
少なくとも直感的ではないのは確かに思える
もっといい方法はなかったのだろうか…
詳細度を変えるために、詳細度を変えるためにある記述( !important )ではなく、要素セレクタを加えるという一見直感的でない記述によって対処しないといけないという点も違和感yosider
でも「詳細にする」という意味では 重要です! と言うよりもセレクタを詳細にするほうが直感的か
優先順位を上げたいと思っている人にとっては !important のほうが直感的かも
単純に下に書いたスタイルが優先されるんでいいじゃん…とは思ってるMijinko_SD
たしかにyosider
CSSの仕様はごちゃごちゃしすぎててめんどくさい
ググりづらい基素
開発環境が「今定義したやつとぶつかる指定があるけど、どっちを優先する?ちなみにデフォルトだと詳細度を元にこっちを優先するので、それでいいなら何も操作しなくていいよ!」とやってくれるのが理想だと思うwnishio
ぶつかる指定はdeveloper toolで打ち消し表示されるので、それがある程度代替になっているのかな……takker

字面がちょっと面白いsta
「インポータント!」みたいな
「我重要ぞ!」Mijinko_SD
安直すぎんかって感じが面白い

CSSを設計する立場の人は使うべきではないmtane0412
設計者とは別に後から追加する場合
DOMを操作できるならidやclassを使うべき
DOM操作もできない場合で確実にスタイルを上書きしたい場合は使う
スタイル衝突する可能性を許容するなら使わない
!important衝突が起きるなら設計者がおかしい
たくさんの人がCSS追加する状況って結構面白いんだな
一般論で考えると追加する人たちできちんと足並み揃えろと言われそう

>CSS co-designer here.
>!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翻訳:
>CSS の共同デザイナーです。
>!important が追加された理由はただ 1 つ、米国の法律で特定のテキストを特定のフォント サイズにする必要があるためです。!important はカスケードによる変更を阻止します。
>それ以外の場合はおそらく誤用であり、カスケードを正しく理解していない可能性があります。
>米国の法的な文書では特定のフォントサイズを使用することが義務付けられており、CSSの !important はそれを遵守するために誕生したらしい @stevenpemberton
草bsahd

userchrome.cssだとほとんどの場合これを使わないと適用されないbsahd
ダブル!imporant早く実装して