Written by Kasumi

CSSのhas擬似クラスを使って指定した要素の有無を判別する方法

CSSを使って、ある要素内に指定した要素があるか有無を確認。

有無に応じてプロパティを適用したい。

本記事ではこのような悩みを解決します。

has擬似クラスを使って要素の有無を判別する

<div class="item">
  <p>pテキスト</p>
  <span>spanテキスト</span>
</div>

<style>
  /* itemクラスの中にpタグがあればpタグ内テキストの文字色をredに変更 */
  .item:has(p) p {
    color: red;
  }

  /* itemクラスの中にpタグが無ければspanタグ内のテキストの文字色をredに変更 */
  .item:not(:has(p)) {
    color: red;
  }
</style>

要素の有無を判別するコード例です。

has擬似クラスを使います。

使い方は以下の通りです。

親要素:has(有無を確認したい要素)

有無を確認したい要素の親要素にhas擬似クラスを付与。

引数に有無を確認したい要素を指定します。

以上で対象の要素が有る場合にブロック内のプロパティが適用されます。

逆に対象の要素が無しの場合にプロパティを適用したい場合は以下のようnot擬似クラスを使います。

親要素:not(:has(有無を確認したい要素))

本コード例ではitemクラス内にpタグがある場合、pタグテキストの文字色をredに。

pタグが無い場合はspanタグテキストの文字色がredになるようhasクラスを使ってCSSプロパティを指定してます。

以上で実装完了です。

まとめ

CSSのhas擬似クラスを使って指定した要素の有無を判別する方法について紹介しました。

以上で解説を終わります。

目次

関連記事

HTMLCSS プログラミング

【CSS】input要素のplaceholderの文字だけサイズを変更する方法

2022.01.10
11555
HTMLCSS

CSSで三角形の背景を作成。横幅100%でレスポンシブに可変させる方法

2023.01.16
3116
HTMLCSS

CSSで丸のドット下線を作成する方法【間隔・大きさを自由に変更】

2023.02.13
9161
HTMLCSS jQuery

一枚画像に複数のリンクを場所指定して設置する方法【レスポンシブ対応】

更新日:2022.09.09
2627