[CSS] :not()セレクタを複数指定する方法

1 min read

状況

以下のようなページネーションがある。

<ul class="pagination">
  <li class="first"></li>
  <li class="previous"></li>
  <li>01</li>
  <li>02</li>
  <li>03</li>
  <li class="active"></li>
  <li></li>
  <li class="last"></li>
</ul>

first previous active last以外の要素にスタイルを適用したい。こういう場合、:not()セレクタを使って指定を除外するが、複数指定する場合も同様に:not()セレクタを使う。

使用方法

Selectors Level 3 では、:not(.first, previous)ように続けて指定できない。

以下のように:not()を繋げて指定する必要がある。

&:not(.first):not(.next):not(.previous):not(.last):not(.active) {
  /* style */
}

Selectors Level 4 では、リスト形式を入れ込むことが出来る。

&:not(.first, .next, .previous, .last, .active) {
  /* style */
}

サポートブラウザは以下の通り。

ChromeEdgeSafariFirefoxiOS Safari
10810815.610812.5

https://caniuse.com/css-not-sel-list