CSS 입문 | CSS 선택자 | 구조 의사 클래스
구조 의사 클래스(structural pseudo-class)
구조 의사 클래스를 사용하면 HTML 요소의 계층 구조에서 특정 위치에 있는 요소를 선택할 수 있다.
CSS에서 사용할 수 있는 구조 의사 클래스는 다음과 같다.
의사 클래스 | 설명 |
---|---|
:first-child | 모든 자식(child) 요소 중에서 맨 앞에 위치하는 자식(child) 요소를 모두 선택함. |
:last-child | 모든 자식(child) 요소 중에서 맨 마지막에 위치하는 자식(child) 요소를 모두 선택함. |
:nth-child | 모든 자식(child) 요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함. |
:nth-last-child | 모든 자식(child) 요소 중에서 뒤에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택함. |
:first-of-type | 모든 자식(child) 요소 중에서 맨 처음으로 등장하는 특정 타입의 요소를 모두 선택함. |
:last-of-type | 모든 자식(child) 요소 중에서 맨 마지막으로 등장하는 특정 타입의 요소를 모두 선택함. |
:nth-of-type | 모든 자식(child) 요소 중에서 n번째로 등장하는 특정 타입의 요소를 모두 선택함. |
:nth-last-of-type | 모든 자식(child) 요소 중에서 뒤에서부터 n번째로 등장하는 특정 타입의 요소를 모두 선택함. |
:only-child | 자식(child) 요소를 단 하나만 가지는 요소의 자식(child) 요소를 모두 선택함. |
:only-of-type | 자식(child) 요소로 특정 타입의 요소 단 하나만을 가지는 요소의 자식(child) 요소를 모두 선택함. |
:empty | 자식(child) 요소를 전혀 가지고 있지 않은 요소를 모두 선택함. |
:root | 문서의 root 요소를 선택함. |
:first-child
:first-child
는 모든 자식(child) 요소 중에서 맨 앞에 위치하는 자식(child) 요소를 모두 선택한다.
<style>
p:first-child { color: red; font-weight: bold; }
</style>
:last-child
:last-child
는 모든 자식(child) 요소 중에서 맨 마지막에 위치하는 자식(child) 요소를 모두 선택한다.
<style>
p:last-child { color: red; font-weight: bold; }
</style>
:nth-child
:nth-child
는 모든 자식(child) 요소 중에서 앞에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택한다.
<style>
p:nth-child(2n) { color: red; font-weight: bold; }
</style>
:nth-last-child
:nth-last-child
는 모든 자식(child) 요소 중에서 뒤에서부터 n번째에 위치하는 자식(child) 요소를 모두 선택한다.
<style>
p:nth-last-child(3n) { color: red; font-weight: bold; }
</style>
:first-of-type
:first-of-type
는 모든 자식(child) 요소 중에서 맨 처음으로 등장하는 특정 타입의 요소를 모두 선택한다.
<style>
p:first-of-type { color: red; font-weight: bold; }
</style>
:last-of-type
:last-of-type
는 모든 자식(child) 요소 중에서 맨 마지막으로 등장하는 특정 타입의 요소를 모두 선택한다.
<style>
p:last-of-type { color: red; font-weight: bold; }
</style>
:nth-of-type
:nth-of-type
는 모든 자식(child) 요소 중에서 n번째로 등장하는 특정 타입의 요소를 모두 선택한다.
<style>
p:nth-of-type(2n) { color: red; font-weight: bold; }
</style>
:nth-last-of-type
:nth-last-of-type
는 모든 자식(child) 요소 중에서 뒤에서부터 n번째로 등장하는 특정 타입의 요소를 모두 선택한다.
<style>
p:nth-last-of-type(2n+1) { color: red; font-weight: bold; }
</style>
:only-child
:only-child
는 자식(child) 요소를 단 하나만 가지는 요소의 자식(child) 요소를 모두 선택한다.
<style>
p:only-child { color: red; font-weight: bold; }
</style>
:only-of-type
:only-of-type
는 자식(child) 요소로 특정 타입의 요소 단 하나만을 가지는 요소의 자식(child) 요소를 모두 선택한다.
<style>
p:only-of-type { color: red; font-weight: bold; }
</style>
:empty
:empty
는 자식(child) 요소를 전혀 가지고 있지 않은 요소를 모두 선택한다.
<style>
p:empty { width: 300px; height: 20px; background: red; }
</style>
:root
:root
는 해당 문서의 root 요소를 선택한다.
<style>
:root { background: red; }
</style>
HTML 문서에서 root 요소는 언제나 html 요소이다.