티스토리 뷰
//비전공자가 혼자 공부하는 공간입니다
//잘못된 정보가 있을 수 있어요
CSS Diner 사이트를 통해 Selectors 연습을 하고 있다
그 중 level 18 에서 이해가 가지 않는 부분들이 있어서 좀 더 파고들어 보려고 한다
:nth-child 자식 요소 선택을 사용하여 해결하면 되는 일이다
위 예시를 참고하여 응용해보았다
div plate:nth-child(3)
응? 안 되네?
(div가 여러개 있는 것이 아니라 하나만 있어서 div를 선택해보았다)
.table plate:nth-child(3)
얘도 안 되네?...
:nth-child(3)
이 코드로만 된다
그런데 위 예시를 보면 EVERY element 를 대상으로 하는 것 같은데
만약 div가 여러개 있다면 `:nth-child`를 사용해 어떻게 구분하여 선택할 수 있는지 궁금해졌다
비슷한 예시를 만들어서 한 번 테스트해보려고 한다
<직접 만든 예시>
<div class="box">
<p>a</p>
<p>b</p>
<p>c</p>
<p id="color">d</p>
</div>
<div class="box2">
<p>a</p>
<p>b</p>
<p>c</p>
<p id="color2">d</p>
</div>
이렇게 같은 구조의 div를 만들어보았다
만약 문제가 첫 번째 c에만 배경색을 채워보세요 라면 어떻게 될까
:nth-child(3) {
background-color: pink;
}
p:nth-child(3) {
background-color: pink;
}
div p:nth-child(3) {
background-color: pink;
}
p:nth-of-type(3) {
background-color: pink;
}
위 코드들로는 첫 번째 div의 3번째 항목과 두 번째 div의 3번째 항목 둘 다 선택이 된다
.box p:nth-child(3) {
background-color: pink;
}
이렇게 코드를 작성했을 때 첫 번째 c가 선택이 된다
개념으로 따진다면 CSS Diner game - Level 18 에서
앞전에 작성했던 아래 두 코드는 맞는 코드이긴 하지만 정상적으로 작동되지 않는다
div plate:nth-child(3)
.table plate:nth-child(3)
여러가지 시도해봤지만 `:nth-child(3)` 코드를 제외하고는 아무것도 작동되지 않는다
사이트 내에서 해당 코드만 정답으로 맞게 설정해둔 것 같다
각 레벨의 특정 요구 사항이 표준 CSS 구문과 어떻게 다른지 이해하는 것이 중요하다고 한다
CSS Diner
A fun game to help you learn and practice CSS selectors.
flukeout.github.io
//비전공자가 혼자 공부하는 공간입니다
//잘못된 정보가 있을 수 있어요
'HTML CSS' 카테고리의 다른 글
[퍼블리싱] 반응형 디자인 구현 (0) | 2024.09.19 |
---|---|
Sass/SCSS (0) | 2023.02.23 |
까먹을까봐 기록하는 가운데 정렬 margin (0) | 2023.02.01 |
머리 식힐 때도 어플로 자투리 공부하기 (0) | 2023.01.21 |
버스 안에서 sololearn으로 <form> 복습하기 (0) | 2023.01.19 |
- Total
- Today
- Yesterday
- 상태변수
- VirtualDom
- 코딩독학
- 체크박스오류
- 자바스크립트
- CSS게임
- dom조작
- translateX
- DOMapi
- 이벤트핸들링
- 리액트
- vanillajs
- 즉시실행함수
- 비전공자
- CSS
- 변수스코프
- 가상돔
- DOM제어
- 프론트엔드독학
- CSS선택자
- JavaScript
- 캐시오류
- 프로그래밍독학
- labelfor
- 로컬스토리지오류
- CSSDiner
- 논리부정연산자
- 화살표함수
- DOM자바스크립트
- :nth-child
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |