ホームページ >ウェブフロントエンド >CSSチュートリアル >CSS を使用して別の要素の状態に基づいて要素を選択するにはどうすればよいですか?
はじめに
CSSは、別の要素の状態のみに基づいて要素を選択する手段を本質的に提供するものではありません。ただし、単純なセレクター、コンビネータ、および要素間の親関係を組み合わせることで、特定のシナリオで限定的な要素間ターゲティングを実現できます。
構造的関係と単純なセレクター
CSS セレクターは、ドキュメント ツリー内の要素の構造と状態を表します。型セレクター、属性セレクター、疑似クラスなどの単純なセレクターは、プロパティに基づいて個々の要素を識別します。例:
div[data-status~="finished"]
コンビネータと関係
コンビネータ (>、,、~ など) は、要素間の関係を定義します。たとえば、>は子関係を表し、隣接する兄弟を示し、~ はすべての兄弟を選択します。したがって、次のように構築できます。
section > div[data-status~="finished"]
既存のセレクターの制限
子および兄弟のコンビネータがあるにもかかわらず、セレクター 3 には逆セレクターまたは祖父母セレクターがありません。これにより、次の例のように、無関係な要素の状態に基づいて要素を直接選択することができなくなります。
<section> <div data-status="finished"></div> <section> <div>
擬似要素の階層と動的クラス
賢い疑似要素階層と動的クラス操作を使用すると、要素間ターゲット設定の回避策が提供される場合があります。ただし、これらの手法には制限があり、重要なコードが必要です。
CSS4 の潜在的な解決策: :has()
CSS4 などの CSS の将来の反復では、次のものが使用されます。 has() 擬似クラスを使用すると、特定のサブツリーとの関係に基づいて要素を選択できます。これにより、現在の制限を克服する方法が提供されます:
section:has(> div[data-status~="finished"]) + section > div.blink
以上がCSS を使用して別の要素の状態に基づいて要素を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。