CSS - 자식 결합자 (Child Combinator)

반응형

 

자식 결합자란? (Child Combinator)

  • 두 개의 CSS 선택자 사이에 위치
  • 뒤쪽 선택자의 요소가 앞쪽 선택자 요소의 바로 밑에 위치할 경우에만 선택
    • 바로 아래에 위치해야하므로 자손 결합자보다 엄격함
      • 자식 : 바로 아래의 하위 요소
      • 자손 : 바로 아래의 하위 요소의 하위 요소

구문

선택자1 > 선택자2 {
	속성
}

사용 예시

  • 셀렉터 세 개를 정의하고 자식결합자의 작동 확인하기

CSS

/* 셀렉터1 높이 40px, 핑크색*/
.selector1 {
    display: inline-block;
    height: 40px;
    background-color: pink;
}

/* 셀렉터2 높이 30px, 패일바이올렛색 */
.selector2 {
    display: inline-block;
    height: 30px;
    background-color: palevioletred;
}

/* 셀렉터3 보라색*/
.selector3 {
    display: inline-block;
    background-color: violet;
}

/* 자식결합자 셀렉터1 > 셀렉터2 빨간색 */
.selector1 > .selector2 {
    background-color: red;
}

HTML

<span class="selector1"> selector1 </span> <p>
<span class="selector2"> selector2 </span> <p>
<span class="selector3"> selector3 </span> <p>

<div class="selector1"> selector1 
    <span class="selector2"> > selector2 <!-- 셀렉터1의 자식 -->
        <span class="selector3"> > selector3 </span> <!-- 셀렉터1의 자손 -->
    </span>
</div>

<div class="selector1"> selector1
    <span class="selector3">  > selector3  <!-- 셀렉터1의 자식 -->
        <span class="selector2"> > selector2 </span> <!-- 셀렉터1의 자손 -->
    </span>
</div>

전체 소스 코드

  • childCombinatorTest.html
<style>
.selector1 {
    display: inline-block;
    height: 40px;
    background-color: pink;
}

.selector2 {
    display: inline-block;
    height: 30px;
    background-color: palevioletred;
}

.selector3 {
    display: inline-block;
    background-color: violet;
}

.selector1 > .selector2 {
    background-color: red;
}
</style>

<html>
<span class="selector1"> selector1 </span> <p>
<span class="selector2"> selector2 </span> <p>
<span class="selector3"> selector3 </span> <p>

<div class="selector1"> selector1 
    <span class="selector2"> > selector2
        <span class="selector3"> > selector3 </span>
    </span>
</div>
<p>
<div class="selector1"> selector1
    <span class="selector3">  > selector3
        <span class="selector2"> > selector2 </span>
    </span>
</div>
</html>

결과 화면

.selector1 > .selector2 {
    background-color: red;
}
  • 셀렉터1 바로 밑에 자식으로 셀렉터2가 올 경우 빨간색으로 변경
  • 셀렉터1 바로 밑이 아닌 자손으로 셀렉터2가 올 경우 기존 색상 유지 

 

반응형