CSS「:not()」で複数指定の場合

例えば、.hogeと.pekoの二つのクラスを持たない要素に指定したい場合は、カンマを用いて記述します。

記述的に問題はありませんが、実際は今のほとんどのブラウザで実装されていません。

今のブラウザに認識させる方法として上記のように「:not()」を続けて書く方法があります。ただし、気をつけないといけない点があります。

下記の状態のhtmlソースの内容に、上記の「:not()」を続けて書く方法を適用してみます。

上記のセレクタでは、.hogeと.pekoのセレクタを持たない要素が赤になれ!と指定したことで1と3と5行の要素が選ばれたことになりますが、実際にブラウザで確認してみると全て赤になってしまいます。これは.hogeと.pekoのセレクタを持たない要素として.listAが選ばれたので該当する全ての行(.listAで指定された行)に赤が指定されたことになるからです。これを回避する方法として下記の記述をします。

cssの詳細度を上げて指定すると回避できます。

関連記事