コーディング規約で!important
を禁止されているプロジェクトで、それらしきものを実現しようと考えている。最終的に:not(#not) :not(#not) p
というセレクターをひねり出した。ウェブページでは、ブラウザーがhtml
とbody
要素を補完するので、すべてのp
要素に必ずマッチする。そして、詳細度が2,0,1
と、かなり高くなるため、ルールセットが!important
にかなり近い強さになる。
:not(#not)
はいくつでも書ける。しかし、補完される2つの要素分以外は、HTMLのツリー構造に依存するので、注意が必要だ。セレクターのため、ブロック(ルールセット)が明示的に分かれ、追加と削除が明確な分、!important
よりも作業しやすい。:not()
疑似クラスの基本サポートはかなり古い(10年以上)ため、そういう点でも問題はない。
何かおかしいところを直すために一時的に使い、根本的に解決出来たら消す用途に使おうと思っている。ほとんどの人が見たことがないので、かなり書きづらい。こっそり書いたが、まだ見つかっていない。