説明
※説明の為に単純化してるので意味はありません。:nth-child
とかは使いません。
<ul class="parent-1">
<li class="child-1">a</li>
<li class="child-2">b</li>
<li class="child-3">c</li>
</ul>
<ul class="parent-2">
<li class="child-1">a</li>
<li class="child-2">b</li>
<li class="child-3">c</li>
</ul>
このparent-1
以下のchild-1
, child-2
だけ指定したいとする。
コンマで複数要素を指定できるが、↓のように書くとparent-2
のchild-2
まで指定されてしまう。
.parent-1 .child-1, .child-2 {
color: orange;
}
なので、このように書かなきゃいけない。
2個だからまだいいけど増やせば増やすほど行が増える。
.parent-1 .child-1,
.parent-1 .child-2 {
color: orange;
}
:is(a, b, c)
.parent-1 :is(.child-1, .child-2)) {
color: orange;
}
.parent-1
以下の.child-1
と.child-2
だけ色が変わりましたね。
Chrome 88から使えるらしい。
(本当は:not(:not(a))
とかいう頭おかしいことドヤ顔で書いてたんだけどコメントで:is()
を教えていただきました。ありがとうございます。死にたい。)