ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS は兄弟の属性に基づいて要素を選択的にターゲットにするにはどうすればよいですか?

CSS は兄弟の属性に基づいて要素を選択的にターゲットにするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 04:43:13494ブラウズ

How Can CSS Selectively Target Elements Based on a Sibling's Attribute?

CSS が別の要素の状態に基づいて要素を選択する方法

DOM 内の他の要素の状態に基づいて要素を特定し、対象を指定することは困難な場合があります。 CSS セレクターは、コンビネータとセレクター構文によって課される制約により、提供されるオプションが限られています。親子関係や疑似クラスの使用など、いくつかの基本的なテクニックは適用できますが、特定のシナリオではより高度なソリューションが必要になります。

現在の実装の制限

現在の標準であるセレクター 3 には、親セレクターや以前の兄弟セレクターのような重要な機能がありません。これらの機能により、要素の構造化とターゲット設定のための CSS の機能が大幅に拡張されます。セレクターの主題を指定できないことも制約になります。

今後の Selectors 4 の可能性

今後の Selectors 4 標準は、これらの制限に対処することを目的としています。 jQuery の機能からインスピレーションを得た :has() 擬似クラスは、柔軟なソリューションを提供します。 :has() を使用すると、親内の他の要素の存在に基づいて要素を選択できます。

問題の解決

質問に示されている問題の例。別の要素の data-status 属性に基づいて要素をターゲットにする必要がありますが、セレクターの :has() を使用して解決できます4:

section:has(> div[data-status~=finished]) + section > div:matches(.blink, .spin)

このセレクターは、:has() を使用して、指定された data-status を持つ子 div を含むセクションを選択し、次に、 .blink または .spin クラス。

以上がCSS は兄弟の属性に基づいて要素を選択的にターゲットにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。