フロントの人の雑多メモ

【CSS】特定の要素「以前」や「より前」「直前」を指定するセレクタ

【CSS】特定の要素「以前」や「より前」「直前」を指定するセレクタ

CSSで特定の要素以前より前直前を指定するセレクタの書き方をご紹介します。

兄弟要素「~」や、否定「:not()」、擬似クラス「:has()」などを駆使して指定します。

HTML

共通で、このようなHTMLを使います。

<ul>
	<li>リスト</li>
	<li>リスト</li>
	<li>リスト</li>
	<li class="target">特定の要素</li>
	<li>リスト</li>
	<li>リスト</li>
</ul>

目次

特定の要素「以前」

特定の要素以前を指定するにはこう。

:not()を使い「.target」より後の「li」を否定します。

ul li:not(.target ~ li) {
	color: red;
}

「.target」以前の「li」が赤くなりました。

  • リスト
  • リスト
  • リスト
  • 特定の要素
  • リスト
  • リスト

特定の要素「より前」

特定の要素より前を指定するにはこう。

先ほどに「:not(.target)」を加え.target自身も否定してあげます。

ul li:not(.target ~ li):not(.target) {
	color: red;
}

「.target」より前の「li」が赤くなりました。

  • リスト
  • リスト
  • リスト
  • 特定の要素
  • リスト
  • リスト

特定の要素「直前」

特定の要素の直前を指定するにはこう。

「:has()」を使い、兄弟要素に.targetを持つliを指定します。

ul li:has(+ .target) {
	color: red;
}

「.target」直前の「li」が赤くなりました。

  • リスト
  • リスト
  • リスト
  • 特定の要素
  • リスト
  • リスト

ただし、:has()は2023年現在FireFoxでサポートされていませんのでご注意ください。

Can I use

コメント

内容を確認の上、個人情報などは省いて掲載させていただきます。

お名前・メールアドレスも入力する

メールで返信がほしい場合に入力してください。

頂いた個人情報は開示しません。返信のためだけに利用いたします。

直接送信されます。確認の上、「送信」してください。

お役に立てましたら応援をお待ちしております!
頂いた応援は子育てに活用させていただきます。

OFUSEで応援を送る


または以下のボタンからなにか買って応援 (PR)

Amazon

楽天市場

Yahoo!ショッピング

Amazonのアソシエイトとして「けん」は適格販売により収入を得ています。

シェア

Twitterでシェア Facebookでシェア LINEでシェア はてなブックマークでシェア

お役に立てましたら応援をお待ちしております!
頂いた応援は子育てに活用させていただきます。

OFUSEで応援を送る