:nth-child() 선택기를 사용하면 웹사이트 레이아웃 내의 개별 요소에 스타일 선택을 식별하고 적용할 수 있습니다. 이 특정 선택기를 사용하면 서로 간의 각 위치에 따라 특정 형제 요소를 타겟팅할 수 있습니다.

이 선택기는 기본 키워드 옵션과 고급 패턴 기반 구문을 모두 제공하여 다양한 선택을 수용할 수 있습니다. 이러한 다양성을 통해 사용자는 특정 요구 사항에 맞게 단순 반복 패턴 또는 복잡한 기준 중에서 유연하게 선택할 수 있습니다.

:nth-child() 선택자 구문

:nth-child() 선택자는 인수를 사용하여 형제 요소 그룹 내에서 특정 요소를 식별하고 대상으로 지정하는 고유한 유형의 CSS 의사 클래스 선택자입니다. 다른 선택기와는 달리, 이 선택기는 패턴을 사용하여 형제 요소 집합 사이의 요소를 일치시킵니다.

 :nth-child(args) {
    /*...*/
}

괄호 안에 괄호로 묶인 문에 중점을 두며, 선택하려는 요소의 하위 집합을 설명합니다.

일반적인 경우에 키워드 값 사용

이 특정 선택기는 “홀수”와 “짝수”라는 두 가지 키워드 값을 허용할 수 있으며, 이는 테이블 구조 내에서 교대로 행에 스타일을 적용할 때 특히 유용합니다.

이러한 키워드 값을 적절하게 활용할 수 있는 사례에는 다음과 같은 간단한 열거가 포함됩니다:

 <ol>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
    <li>Item 7</li>
</ol>

`:n번째 자식(홀수)` 선택기를 사용하면 시퀀스의 모든 후속 홀수 자식 요소의 색상을 수정할 수 있으므로 각 요소가 고유한 색조를 갖는 번갈아 나타나는 패턴을 만들 수 있습니다.

 :nth-child(odd) {
    color: red;
}

첫 번째 항목이 빨간색, 세 번째 항목이 파란색으로 표시되도록 항목에 번호가 지정됩니다.

유연성을 높이기 위한 기능 표기법

이러한 방식으로 단독 숫자 값을 사용하여 특정 구성 요소를 선택할 수 있습니다:

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

앞서 언급한 선택자는 열거형 내의 네 번째 요소에만 해당합니다:

특정 패턴을 준수하는 요소를 식별하고 분리하는 함수 구문의 특정 인스턴스는 일치하는 기준에 따라 항목을 선택하는 더 넓은 범주에 속합니다.

 :nth-child(An+B) {
    /*...*/
}

A는 증분 또는 단계 크기를 나타내며, 선택기가 다음 항목을 선택하기 위해 얼마나 많은 위치로 전진할지를 결정합니다. 따라서 A의 값을 적절히 조정하여 매번 다른 항목 또는 세 번째 항목과 같이 일정한 간격으로 항목을 선택할 수 있습니다.한편, B는 선택이 시작되는 초기 지점을 나타내며, 선택자가 시퀀스를 진행하기 위한 기준점 역할을 합니다.

이 글도 확인해 보세요:  Rust의 제네릭 형식 알아보기

3n + 1의 예가 대표적인 사례입니다.

 li:nth-child(3n+1) {
    color: red;
}

먼저 초기 구성 요소부터 시작하여 이후 각 후속 요소를 3세트 단위로 선택합니다:

3N + 2 식과 비교할 때 복잡성과 우아함 측면에서 차이가 있습니다. 전자는 구조가 더 단순하고 직관적인 반면, 후자는 거듭제곱과 지수의 사용으로 인해 발생하는 고유한 아름다움과 수학적 정교함을 지니고 있습니다.

 li:nth-child(3n+2) {
    color:red;
}

업데이트된 코드는 처음부터 시작하는 대신 목록의 두 번째 요소부터 항목을 선택하기 시작하며, 세 번째 항목마다 선택하는 규칙을 계속 준수합니다:

더 흥미로운 사례는 CSS 선택자 `:nth-child(n+3)`에서 찾을 수 있습니다.

 li:nth-child(n+3) {
    color: red;
}

주어진 명령은 세 번째 위치부터 시작하여 특정 패턴을 따르는 모든 항목을 선택하는 것과 관련이 있습니다. 결과 출력은 아래에 설명된 구조와 유사합니다:

특정 결과를 얻기 위해 뺄셈 과정을 활용할 수 있습니다:

 li:nth-child(3n-1) {
    color: red;
}

수정된 코드는 이제 첫 번째 요소를 생략하는 것으로 시작하여 두 번째 항목에서 시작하여 네 번째 항목으로 이어지는 시퀀스를 생성합니다.

구문

선택자 및 해당 번호와 함께 “다음에” 키워드를 사용하면 “:nth-child()” 선택자 기준 범위 내에서 특정 요소를 타깃팅할 수 있습니다.

제공된 텍스트는 “Jane”이라는 개인이 치과 위생사로 일하며 치아 세척, 엑스레이 촬영, 국소 마취제 투여, 구강 건강 관리에 대한 환자 교육 제공 등 다양한 작업을 수행하는 시나리오를 설명합니다. 제인은 구강 건강을 유지함으로써 사람들의 전반적인 웰빙을 개선하는 데 도움을 줄 수 있다는 점에서 자신의 직업을 소중히 여깁니다. 하지만 제인은 드릴링과 연마와 같은 일상적인 시술 과정에서 아말감 충전재로 인한 수은 노출의 잠재적인 부정적인 영향에 대해 우려를 표명합니다. 이러한 위험을 완화하기 위해 그녀는 안전한 취급 기술을 채택하고 가능한 한 대체 충전재를 사용합니다.또한 Jane은 모든 환자에게 환경 오염을 최소화하기 위해 보호 장비 사용 및 적절한 폐기 방법에 대한 정보를 제공합니다.

 <ol>
    <li class="old">Item 1</li>
    <li class="new">Item 2</li>
    <li class="new">Item 3</li>
    <li class="old">Item 4</li>
    <li class="new">Item 5</li>
    <li class="new">Item 6</li>
    <li class="new">Item 7</li>
</ol>

‘:nth-child’ 의사 클래스를 사용하여 특정 클래스를 가진 짝수 요소를 선택하려면 다음과 같이 CSS 구문을 활용할 수 있습니다: “`css .specificClass::before { content: “even”; } “` 이 예제에서 ‘.specificClass’는 ‘특정 클래스’가 할당된 HTML 요소를 나타냅니다. ‘::before` 의사 요소는 루프의 두 번째 반복마다 선택한 각 요소 앞에 텍스트 “even”를 추가하는 데 사용됩니다. 이렇게 하면 지정된 클래스를 가진 요소 집합 내의 짝수 요소에만 원하는 효과가 적용됩니다.

 .new {
    font-weight: bold;
}

li:nth-child(even of.new) {
    color: red;
}

“짝수”로 표시된 굵은 항목이 빨간색으로 강조 표시되는지 확인합니다.

이 글도 확인해 보세요:  개발자와 디자이너를 위한 10가지 UI/UX 영감 사이트

`li.new:nth-child(-n+1)` 선택자는 형제 요소와 첫 번째 자식(`-n+1`) 또는 마지막 자식(`-n+1 = 1`)으로 위치 관계가 있는 `

  • ` 요소를 대상으로 하는 반면, `li.new:nth-child(even)`는 부모 요소의 짝수 자식인 `
  • ` 요소(즉, 주어진 예에서 항목 2와 6)를 구체적으로 선택합니다.

    :nth-child() 선택자 작업

    :nth-child() 선택자를 활용하면 독특한 스타일을 생성할 수 있습니다. 이를 통해 표 형식의 데이터 구조 내에서 개별 요소를 강조하는 등 웹 디자인 내에서 생동감 있는 미학을 구현할 수 있습니다. 이 선택기를 추가 CSS 선택기와 통합하면 복잡한 패턴과 구성을 쉽게 구성할 수 있습니다.

  • By 김민수

    안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.