> 웹 프론트엔드 > CSS 튜토리얼 > CSS를 사용하여 다른 요소의 상태를 기반으로 요소를 어떻게 선택할 수 있습니까?

CSS를 사용하여 다른 요소의 상태를 기반으로 요소를 어떻게 선택할 수 있습니까?

DDD
풀어 주다: 2024-12-29 17:37:15
원래의
904명이 탐색했습니다.

How Can I Select an Element Based on Another Element's State Using CSS?

CSS를 사용하여 페이지에 있는 다른 요소의 상태에 따라 요소를 선택하는 방법은 무엇입니까?

소개

CSS 본질적으로 다른 요소의 상태만을 기준으로 요소를 선택하는 수단을 제공하지는 않습니다. 그러나 단순 선택자, 조합자 및 요소 간의 상위 관계를 결합하면 특정 시나리오에서 제한된 요소 간 타겟팅을 달성할 수 있습니다.

구조적 관계 및 단순 선택자

CSS 선택기는 문서 트리에 있는 요소의 구조와 상태를 나타냅니다. 유형 선택기, 속성 선택기, 의사 클래스와 같은 단순 선택기는 해당 속성을 기반으로 개별 요소를 식별합니다. 예:

div[data-status~="finished"]
로그인 후 복사

결합자와 관계

>, , ~와 같은 결합자는 요소 간의 관계를 정의합니다. 예를 들어 > 는 자식 관계를 나타내고, 인접한 형제를 나타내며, ~는 모든 형제를 선택합니다. 따라서 다음을 구성할 수 있습니다.

section > div[data-status~="finished"]
로그인 후 복사

기존 선택자의 한계

자식 및 형제 조합자가 있음에도 불구하고 Selector 3에는 역 또는 조부모 선택자가 없습니다. 이로 인해 다음 예와 같이 관련되지 않은 요소의 상태에 따라 요소를 직접 선택할 수 없습니다.

<section>
    <div data-status="finished"></div>
    <section>
        <div>
로그인 후 복사

의사 요소 계층 구조 및 동적 클래스

Clever 의사 요소 계층 구조 및 동적 클래스 조작을 사용하면 요소 간 타겟팅에 대한 해결 방법을 제공할 수 있는 경우가 있습니다. 그러나 이러한 기술은 제한적이며 상당한 코드가 필요합니다.

CSS4의 잠재적 솔루션: :has()

CSS4와 같은 향후 CSS 반복에서는 다음이 수행됩니다. has() 의사 클래스를 사용하면 특정 하위 트리와의 관계를 기반으로 요소를 선택할 수 있습니다. 이는 현재의 한계를 극복할 수 있는 방법을 제공합니다.

section:has(> div[data-status~="finished"]) + section > div.blink
로그인 후 복사

위 내용은 CSS를 사용하여 다른 요소의 상태를 기반으로 요소를 어떻게 선택할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿