CSS에서 :has() 선택자는 부모 요소가 특정 자식 요소를 포함하고 있는지를 확인할 때 유용한 가상 선택자입니다. 이를 활용하면 기존 CSS만으로는 어렵던 스타일링을 보다 쉽게 적용할 수 있습니다. 이번 글에서는 :has() 선택자의 개념과 활용법을 자세히 알아보겠습니다.
1. :has() 가상 선택자란?
:has() 선택자는 특정 요소가 특정 자식 요소를 포함하고 있는지 확인하여 스타일을 적용할 수 있도록 합니다. 보통 CSS는 부모 요소가 자식 요소를 선택하는 방식으로 동작하지만, :has()를 사용하면 반대로 자식을 기준으로 부모 요소를 선택하는 것이 가능합니다.
:has() 기본 문법
selector:has(child-selector) {
property: value;
}
예제
div:has(p) {
border: 2px solid blue;
}
위 코드에서는 p 요소를 포함한 모든 div 요소에 파란색 테두리가 적용됩니다.
2. :has()의 주요 기능
부모 요소 스타일 변경: 특정 자식 요소를 포함하는 부모에게 스타일을 적용할 수 있습니다.
동적 스타일링 가능: 특정 요소가 존재할 때와 존재하지 않을 때의 스타일을 구분할 수 있습니다.
자바스크립트 없이 인터랙티브한 디자인 가능: 기존 CSS만으로도 UI를 동적으로 스타일링할 수 있습니다.