E:NTH-CHILD(N)과 E:NTH-OF-TYPE(N)의 차이점

 

안녕하세요. 하이브랩 웹표준개발1팀 홍나영입니다.

CSS3 선택자 중, E:nth-child(n)과 E:nth-of-type(n)의 사용이 헷갈렸습니다.

둘다 순서와 연관된 CSS3의 선택자입니다.

너희 둘!!!! 대체 뭐가 다른거니?

* 각 브라우저에서 테스트 해볼 수 있는 URL 첨부합니다. 
표 안의 결과값을 개발자도구로 확인할 수 있습니다.
(현 게시판과 화면구성이 동일하니 창이 안 열렸나…혼동하지 마세용^-^}
http://hongnayoung.dothome.co.kr/sellector_v1.html


하단의표는 크롬에서의 결과값을 캡쳐한 이미지입니다.

 

1. E:nth-child(n)

이미지-001.jpg

이미지-002.jpg

이미지-003.jpg

 

2. E:nth-of-type(n)

이미지-004.jpg

이미지-005.jpg

위의 결과만 보았을때, E:nth-child(n)과 E:nth-of-type(n)는 동일한 결과가 나옵니다.
그럼, 둘의 차이점은 무엇일까요?

 

 

 

3. E:nth-child(n) 과 E:nth-of-type(n) 테스트



테스트 HTML구조는 다음과 같습니다. h3를 div에 감싼것과 감싸지 않은 것으로 분류하였습니다.

이미지-006.jpg

h3:nth-child(2)의 background에 pink를 주었습니다.

이미지-007.jpg

h3:nth-of-type(2)의 background에 pink를 주었습니다.

이미지-008.jpg

오잉? 결과가 다릅니다.
뭐가 문제인 걸까요?

h3:nth-child(2)를 선택한 경우, E 아닌 형제요소의 순서가 계산에 포함 됩니다.

이미지-009.jpg

h3:nth-of-type(2)를 선택한 경우, E 요소의 순서만 계산에 포함 됩니다.

이미지-010.jpg


 

4. 결론
이제는 명확해진, E:nth-child(n) 과 E:nth-of-type(n)의 차이!!
혼동하는 일 없이 유용하게 활용해야 겠습니다. 😀

이미지-011.jpg