CSS 강좌 | 선택자 > 가상 클래스(Pseudo-classes) > :nth-child

:nth-child는 형제 요소 중 an+b번째 요소들을 선택합니다.

문법

selector:nth-child(an+b){ ... }

an+b

an+b에서 ab는 상수로 수의 범위는 정수입니다. n은 변수로 음이 아닌 정수가 차례대로 대입됩니다.

예를 들어 2n+1

  • n이 0일 때 2 × 0 + 1 = 1
  • n이 1일 때 2 × 1 + 1 = 3
  • n이 2일 때 2 × 2 + 1 = 5

이므로

:nth-child(2n+1)

은 형제 요소 중 1, 3, 5, …번째 요소들을 선택합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      li:nth-child(2n+1) {
        color: red;
      }
    </style>
  </head>
  <body>
    <ol>
      <li>One</li>
      <li>Two</li>
      <li>Three</li>
      <li>Four</li>
      <li>Five</li>
      <li>Six</li>
    </ol>
  </body>
</html>

an+b의 값이 음수인 경우

an+b의 값은 음수가 될 수도 있습니다. 예를 들어

:nth-child(2n-1)

이라면 n이 0일 때 -1입니다. 이 때는 선택할 요소가 없으므로 무시됩니다. 즉

:nth-child(2n+1)

과 같은 결과를 만듭니다.

an+b에서 a가 0인 경우

an+b에서 a가 0이라면 b만 남습니다. n이 변해도 무조건 b이므로 하나의 요소만 선택합니다. 예를 들어

:nth-child(4)

는 형제 요소 중 4번째 요소를 선택합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      li:nth-child(4) {
        color: red;
      }
    </style>
  </head>
  <body>
    <ol>
      <li>One</li>
      <li>Two</li>
      <li>Three</li>
      <li>Four</li>
      <li>Five</li>
      <li>Six</li>
    </ol>
  </body>
</html>

even과 odd

an+b 대신에 even 또는 odd를 넣을 수 있습니다. even은 짝수번째 요소를 선택하고, odd는 홀수번째 요소를 선택합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>CSS</title>
    <style>
      li:nth-child(odd) {
        color: red;
      }
      li:nth-child(even) {
        color: blue;
      }
    </style>
  </head>
  <body>
    <ol>
      <li>One</li>
      <li>Two</li>
      <li>Three</li>
      <li>Four</li>
      <li>Five</li>
      <li>Six</li>
    </ol>
  </body>
</html>

브라우저 지원

  • Chrome : 4.0
  • Firefox : 3.5
  • Internet Explorer : 9.0
  • Opera : 9.6
  • Safari : 3.2
Category

Created on 2017-02-27 00:01 | Updated on 2017-02-27 16:41

이 글을 공유하기

Kakao