개발이야기/HTML&CSS

[HTML&CSS] :not(), :has() 가상 클래스 선택자 사용하기 (예제, 설명)

후린개발자 2023. 10. 5.
반응형

아래 소스코드는 :not()과 :has() 선택자를 사용하여 HTML 요소를 선택하고 다양한 스타일을 적용하는 예제입니다.

 

 

설명

1. :not() 선택자

 

ㅇ :not() 선택자는 괄호 안에 지정된 조건을 만족하지 않는 요소를 선택합니다. 이 선택자는 특정 요소나 클래스를 제외하고 스타일을 적용하고 싶을 때 유용합니다.


2. :has() 선택자

 

ㅇ :has() 선택자는 괄호 안에 지정된 조건을 만족하는 자식 요소를 포함하는 부모 요소를 선택합니다. 이것은 부모와 관련된 스타일링이나 자식의 존재 여부에 따라 스타일을 적용하고 싶을 때 유용합니다.

 

p:not(.highlight) {
  color: red;
}

 

ㅇ .highlight 클래스를 가진 <p> 요소를 제외한 모든 <p> 요소의 글꼴 색상을 빨간색으로 변경합니다.

 

div:has(p) {
	background-color: yellow;
}

 

ㅇ <div> 요소 중에서 하나 이상의 <p> 요소를 포함하는 경우 배경색이 노란색으로 설정됩니다.

 

div:not(:has(p)) {
	border: 1px solid blue;
}

 

ㅇ <div> 요소 중에서 <p> 요소를 포함하지 않는 경우 테두리가 파란색으로 설정됩니다.

 

 

전체코드

<!DOCTYPE html>
<html>
<head>
  <style>
    p:not(.highlight) {
      color: red;
    }

    div:has(p) {
      background-color: yellow;
    }
	div:not(:has(p)) {
	  border: 1px solid blue;
	}
  </style>
</head>
<body>
  <div>
    <p>첫 번째 단락</p> <!-- 배경색이 노란색으로 설정되고, 글씨는 빨간색으로 설정 -->
  </div>

  <div>
    <p class="highlight">두 번째 단락</p> <!-- 배경색이 노란색으로 설정되고, 글꼴 색상은 빨간색이 되지 않는다. -->
  </div>

  <div>
    <span>세 번째 단락</span> <!-- border css 적용 -->
  </div>

  <p>네 번째 단락</p> <!-- 글꼴 색상이 빨간색으로 설정됩니다. -->
</body>
</html>

 

 

소스코드 결과

 

반응형

댓글

💲 추천 글