CSS

[CSS] 선택자 - 결합자

imcoding 2022. 8. 29. 13:06

 

결합자

 

 

자손 결합자

<div class="box border-box">box1
  <p class="text">text</p>
</div>

<div class="div1">Hello
  <div class="div2">Bye</div>
</div>
div {
  border: 10px solid black;
}

.box.border-box .text { // 자손 결합자
  color: red;
}

div div {  // 자손 결합자
  color: green;
}

공백(띄어쓰기)을 이용해 두 개 이상의 선택자를 조합하는 형태로 표현할 수 있다.

뒤쪽 선택자 요소의 부모선택자가 존재할경우 사용한다. (부모, 부모의 부모, 부모의 부모의 부모...)

뒤에 작성한 선택자부터 그 이하의 모든 선택자들에 스타일을 적용한다.

 

쉼표( , )를 이용해 작성하는 그룹 선택자는 모든 선택자에 스타일이 적용된다는 점에서 차이라고 볼 수 있다.

그룹 선택자 링크 : https://imcoding.tistory.com/46

 

[CSS] 선택자 - 그룹 선택자 사용법

CSS 그룹 선택자 box1 box2 .box { color: blue; } .box.border-box, .box.bg-box { border: 10px solid #000; } 여러개의 선택자를 가져와서 쉼표를 이용해 작성하여 스타일 시트 크기를 줄일 수 있다. 끝

imcoding.tistory.com

 

 

 

자식 결합자

<div>
  <span>Span #1, in the div.
    <span>Span #2, in the span that's in the div.</span>
  </span>
</div>
<span>Span #3, not in the div at all.</span>
span {
  background-color: gray;
}

div > span {
  background-color: DodgerBlue;
}

" > (꺽새) " 로 표시한다.

자손결합자가 뒤에 작성한 선택자 이하의 모든 선택자에 스타일을 적용한다면,

자식 결합자는 앞쪽 선택자 요소의 바로 아래 선택자에만 적용한다는 점에서 더 엄격하다.

 

 

 

일반 형제 결합자

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>
ul {
  li ~ li {
    color: red;
  }
}

두 선택자 사이에 " ~ (물결) " 로 표시한다.

뒤쪽 선택자의 요소와 앞쪽 선택자 요소의 부모 요소가 같아야 한다.

앞쪽 선택자를 제외하고 뒤쪽 선택자 부터 그 이하에 있는 모든 선택자들에 스타일을 적용한다.

 

 

 

인접 형제 결합자

<div>
  <h1>h1 title</h1>
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
  <p>Lorem ipsum dolor sit amet consectetur adipisicing elit.</p>
</div>
div {
  h1 + p {
    color: red;
  }
}

두 선택자 사이에 " + (더하기) " 로 표시한다.

앞쪽 선택자의 바로 뒤에 오는 인접한 뒤쪽 선택자 하나에만 스타일을 적용한다.