CSSセレクタの優先順位
https://gyazo.com/dfb1f9e8506a2c80026e1d676084933d
詳細度には(基本的には)3つの列があり、x-y-zという形で表記される
左側の列の方が優先度が高く(重みが強く)、右側の列の方が優先度が低い
それぞれの列は左から順に以下の通り
ID列
CLASS列
TYPE列
例外として以下のセレクターは詳細度にカウントされない(0-0-0 になる)
詳細は個別ページを参照
<div style="<スタイル>">のように書いたスタイルはセレクターを指定したスタイルより常に優先される
詳細度は便宜上s-x-y-z(sがstyle属性)のような形式で表現されることがある
こちらも詳細は個別ページを参照
計算された詳細度の確認方法
https://gyazo.com/801c32b6899914f4bf4114a49f14665c
Chromeの場合はセレクターにマウスホバーすることで表示される
特異性と表記されているが意味は同じ
詳細度は各列での加点制
0-0-1
要素セレクタ
例) <div id="foo">に対応するdiv
擬似要素
0-1-0
例) <div class="foo">に対応する.foo
例) [href^="https://scrapbox.io]
例) :after
1-0-0
例) <div id="foo">に対応する#foo
0-10-0
例)
code:0-10-0.css
.foo.foo.foo.foo.foo.foo.foo.foo.foo.foo {
/* 0-10-0 のセレクター */
}
同じセレクターを連続させても加算させることができる
ただし、いくら増やしても繰り上がって1-0-0のようにはならない
https://gyazo.com/219becdaffa1f13c4928e4168884b4f5
1-0-0-0
例) <div style="color: black">
ID列より優先される
1-0-0-0-0
点数に関係しないもの
CSSの結合子
例) div > aの>
同じ詳細度の場合は後に記述されたセレクタが優先される
そのためCosenseの場合app.css < projectcss < usercssの順番で優先される
詳細度の例
0-0-1
code:1.css
div {}
0-0-2
code:2.css
div a {}
0-3-1
code:31.css
.line a.link::after {}
3-0-0
code:300.css
1-0-0-1-0
code:10010.css
.foo { background-color: #333 !important; } 参考
/icons/bg.icon
この説明は(少なくとも)今は間違いですよ!綾坂こと.icon
言語化しづらいので何が違うかだけ書くと、1点のセレクタを11個以上使っても10点のセレクタには勝てない(他も同様)
昔からこうだったかは知らないが、少なくとも今は上位のセレクタには勝てないはず
ほんとだMijikko.icon(←書いた人)
(今も昔も)明らかに間違ってるので直します 直しました