AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

논리적 의사클래스의 이해와 활용

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 웹 개발자 및 프론트엔드 엔지니어
  • 중급 이상의 CSS 기술 수준을 가진 개발자
  • 현대적인 CSS 선택자 활용을 원하는 개발자

핵심 요약

  • :not(): 특정 선택자와 일치하지 않는 요소에 스타일 적용 (예: a:not(.btn))
  • :is(): 동일한 규칙을 공유하는 여러 선택자를 간결하게 표현 (예: :is(h1, h2, h3))
  • :where(): 선택자 구문과 동일하지만 특이도가 0인 선택자 (예: :where(article, section))
  • :has(): 특정 자식/손자 요소를 포함하는 요소에 스타일 적용 (예: div:has(img))

섹션별 세부 요약

1. 논리적 의사클래스의 정의

  • DOM 구조 또는 요소 간 관계를 기반으로 요소를 선택하는 CSS 의사클래스
  • :not, :is, :where, :has 등 4가지 핵심 의사클래스 추천

2. 의사클래스별 기능 및 예시

  • :not(selector)

- 특정 선택자와 일치하지 않는 요소 선택

- 예: button:not(.primary).primary 클래스가 없는 버튼에 적용

  • :is(selector, …)

- 여러 선택자를 하나의 규칙으로 묶어 간결하게 표현

- 예: :is(h1, h2, h3) → 제목 요소에 동일한 스타일 적용

  • :where(selector, …)

- :is()와 동일하지만 특이도가 0인 선택자 (스타일 우선순위 조절에 유리)

- 예: :where(article, section) → 문서 구조에 따라 선택자 우선순위 영향 없음

  • :has(selector)

- 특정 자식/손자 요소를 포함하는 요소 선택

- 예: div:has(img) → 이미지를 포함한 div에 스타일 적용

3. 순위 기반 의사클래스

  • :nth-child(n), :nth-of-type(n), :nth-last-child(n), :nth-last-of-type(n)

- 요소의 순서에 따라 선택 (예: li:nth-child(2) → 두 번째 자식 li 선택)

  • :first-child, :last-child, :only-child, :only-of-type

- 특정 위치 또는 유일성 기반 선택 (예: p:only-of-type → 부모 내 유일한 p 요소 선택)

  • :empty

- 텍스트나 공백이 없는 요소 선택 (예: div:empty → 내용이 없는 div 선택)

결론

  • :not, :is, :where, :has 4가지 의사클래스를 완벽히 이해하면 유연하고 효율적인 CSS 규칙 작성이 가능하다.
  • :is()는 선택자 중복을 줄이고, :has()는 복잡한 DOM 구조를 간결하게 조작할 수 있다.
  • 현대 웹 개발에서는 선택자 우선순위 조절복잡한 요소 필터링을 위해 이 4가지 의사클래스를 필수적으로 사용해야 한다.