【CSS】子要素から親要素を指定する-疑似クラスhasについて-

「CSSで特定の子要素を持つ親要素を指定できたらいいのに。」

自分で全てのHTMLを書いていればそんな悩みもなかった。しかしプラグインを使用したり、既存ソースを使用して変更を最小限にしたい場合だと、意外とこの悩みは現実に発生する。

その質問への回答としては疑似クラスhasを使用するということ。

下記のようなHTMLがあった際に、pタグが直後にあるdivタグを指定したい場合を例に見る。

<div>
   <h1>h1タグのあるdivタグ</h1>
</div>
<div>
   <p>pタグのあるdivタグ</p>
</div>

この場合、CSSで下記のように書くことで子要素にpタグを持つdivタグを指定することができる。

div:has(p){
   background:red;
}

h1タグのあるdivタグ

pタグのあるdivタグ

【参考サイト】

:has() - CSS: カスケーディングスタイルシート | MDN
:has() は CSS の疑似クラス関数で、引数として渡される相対セレクターのいずれかが、その要素から辿ってアンカーとして少なくとも一つの要素とマッチする場合に、その要素を表します。この疑似クラスは、相対セレクターリストを引数として取るこ...
タイトルとURLをコピーしました