Css

nth-child 다양하게 사용하기

Urime 2023. 12. 27. 10:50

 

 

 

기본적으로 nth-child는

첫번째(first-child) 또는 마지막 자식요소(last-child)이외에

nth-child로 특정 순번의 자식요소를 선택할 수 있다.

 

 

🔎 예시

div:first-child {} /* 첫번째 자식요소 */
div:last-child {} /* 마지막 자식요소 */

div:nth-child(3) {} /* 3번째 */
div:nth-child(7) {} /* 7번째 */
div:nth-child(9) {} /* 9번째 */

 

 

 

📘 함수식 사용하기

이외에도 ()안에 함수식 넣어 사용할 수도 있다.

기본적인 식은  An+B이다.

A 정수 인덱스 증감량, 즉 n*A가 된다.

B는 정수 오프셋

n은 0부터 시작하는 양의 정수이다.

 

 

 

1. 배수 지정

예를 들어 2n은 2의 배수, 3n은 3의 배수 값이 된다.

2의 배수 = 짝수는 nth-child(even)로도 표현할 수 있다.

 

/* 짝수 */
div:nth-child(2n)
div:nth-child(even)
/* 홀수 */
div:nth-child(2n+1)
div:nth-child(odd)

 

 

 

2. 특정 구간 설정

그렇다면, 특정구간을 설정해서 사용해보자.

 

예를 들어 5번째 이후부터 적용하고 싶은 속성이 있다고 가정하면

함수식은 n+5로 세울 수 있다.

계산해보면, 0+5 = 5, 1+5 = 6, 2+5 = 6 ... 5번째부터 이후까지 정해진다.

 

 

반대로 5번째 이전까지만 속성을 적용시켜야 한다고 가정하자.

그렇다면 함수식은 -n+5로 세울 수 있다.

계산해보면, 0+5 = 5, -1+5 = 4, -2+5 = 3 ... 값이 점차 작아진다.

 

div:nth-child(n+5) /* 5번째, 6번째, 7번째.. 등 */
div:nth-child(-n+5)/* 5번째, 4번째, 3번째, 2번째, 1번째까지 */

 

 

이번에 시작 지점부터 끝지점까지 특정구간을 설정해보자.

6~10번째를 지정한다고 가정하자.

위에 내용을 응용해서 시작 지점n+6이 될 것이다.

끝지점-n+10으로 표현할 수 있다.

이 두가지를 이어서 표현하는 방법은 아래 예시에서 확인하자

 

div:nth-child(n+6):nth-child(-n+10)

 

 

 

 

📖 참고 출처

 

:nth-child - CSS: Cascading Style Sheets | MDN

CSS :nth-child() 의사 클래스는 형제 사이에서의 순서에 따라 요소를 선택합니다.

developer.mozilla.org