CSS

CSS nth에 대해 알아봅시다!

김도현2 2023. 5. 5. 21:45
반응형

CSS nth에 대해 알아봅시다!

CSS에서 nth는 특정 요소의 순서에 따라 스타일을 적용하는 데 사용되는 유용한 선택자입니다.

 

nth 선택자는 nth-child(), nth-of-type(), nth-last-child(), nth-last-of-type()와 같은 다양한 유형이 있습니다.

 

 

 

nth-child( n )

선택자는 해당 요소의 부모 요소의 모든 자식 요소 중 n번째 요소에 대한 스타일을 적용합니다.

n은 정수 값이며, 0 또는 음수 값을 사용할 수도 있습니다.

 

 

<ul>
  <li>사과</li>
  <li>바나나</li>
  <li>딸기</li>
  <li>오렌지</li>
  <li>포도</li>
</ul>
li:nth-child(3) {
    color: red;
}

위의 코드는 ul 요소의 모든 자식 li 요소 중에서 세 번째 li 요소에 대해 color: red 스타일을 적용합니다. 결과적으로 딸기라는 텍스트가 빨간색으로 변경됩니다.

 

 

 

 

홀수/짝수 인덱스 요소에 스타일 적용하기

<ul>
    <li>사과</li>
    <li>바나나</li>
    <li>딸기</li>
    <li>오렌지</li>
    <li>포도</li>
</ul>
li:nth-child(even) {	//짝수
    color: red;
}

li:nth-child(odd) {	//홀수
    color: blue;
}

ul 요소의 모든 자식 li 요소 중에서

 

짝수 번째 li 요소에는 color: red 스타일을,

홀수 번째 li 요소에는 color: blue 스타일을 적용합니다.

 

결과적으로 사과, 딸기, 포도 요소는 파란색 글씨가 되고, 바나나, 오렌지 요소는 빨간 글씨가 됩니다.

 

 

 

n배수 인덱스 요소에 스타일 적용하기

<ul>
    <li>사과</li>
    <li>바나나</li>
    <li>딸기</li>
    <li>오렌지</li>
    <li>포도</li>
</ul>
li:nth-child(2n) {
    color: red;
}

li:nth-child(5n) {
    color: blue;
}

ul 요소의 모든 자식 li 요소 중에서

 

2의 배수 li 요소에는 color: red 스타일을,

5의 배수 li 요소에는 color: blue 스타일을 적용합니다.

 

결과적으로 2의 배수인 바나나, 오렌지 요소는 빨간 글씨가 되고, 5의 배수인 포도는 파란 글씨가 됩니다.

 

 

 

 

nth-of-type

선택자는 선택한 부모 요소의 자식 요소 중에서 동일한 유형의 요소 중에서 특정 인덱스를 가진 요소를 선택합니다.

이 선택자는 부모 요소의 자식 요소들 중에서 지정된 유형의 요소 중에서 지정된 순서에 해당하는 요소를 선택할 때 사용됩니다.

 

 

<div>
    <p>첫 번째</p>
    <p>두 번째</p>
    <div>세 번째</div>
    <p>네 번째</p>
    <span>다섯 번째</span>
</div>
p:nth-of-type(3) {
    color: red;
}

nth-of-type은 부모 요소의 자식 요소 중 type 조건을 만족하는 n번째 자식 요소를 의미합니다.

p:nth-of-type(3)라고 입력했으니 부모 요소의 세 번째 <p></p> 자식 요소를 선택합니다.

 

 

 

 

 

nth-child와 nth-of-type의 차이점

<div>
    <p>첫 번째</p>
    <p>두 번째</p>
    <div>세 번째</div>
    <p>네 번째</p>
    <span>다섯 번째</span>
</div>
p:nth-child(3) {
    color: red;
}

부모 요소를 기준으로 두 번째 자식 요소를 선택하기 때문에 세 번째 요소는 div 요소 이기 때문에 적용이 안된 모습입니다.

 

 

 

p:nth-child(4) {
    color: red;
}

네 번째 요소는 p 요소라 적용이 된 모습입니다.

 

 

 

 

nth-last-child( n )

<div>
    <span>다섯 번째</span>
    <p>네 번째</p>
    <div>세 번째</div>
    <p>두 번째</p>
    <p>첫 번째</p>
</div>
p:nth-last-child(1) {
    color: red;
}

 

nth-last-child 선택자는 선택한 부모 요소의 자식 요소 중에서 끝에서부터 특정 인덱스를 가진 요소를 선택합니다.

nth-child와 비슷하지만, 끝에서부터 요소를 선택하므로 nth-last-child라고 부릅니다.

맨 뒤에 첫 인덱스 요소가 첫 번째입니다.

 

 

 

 

nth-last-of-type( n )

<div>
    <span>다섯 번째</span>
    <p>네 번째</p>
    <div>세 번째</div>
    <p>두 번째</p>
    <p>첫 번째</p>
</div>
p:nth-last-of-type(3) {
    color: red;
}

nth-of-type과 똑같은 타입이지만 last가 붙어 뒤에서부터 요소의 순서를 시작합니다.