HTML/CSS/CSS기초/Lesson 05
CSS 선택자 — *어디에* 스타일을 줄까
1시간·theory
이 챕터
1/3
CSS 선택자 — *어디에* 스타일을 줄까
🎯 이 lesson 을 읽고 나면
이 lesson 을 다 읽고 나면 아래 3가지를 자신 있게 할 수 있습니다.
- ▸✅ 선택자 5종 (요소·클래스·ID·속성·가상) + 우선순위
- ▸✅ specificity 계산 공식 + !important 의 위험
- ▸✅ :hover / :focus / :nth-child 활용
학습 목표를 체크리스트로 두고 다 답할 수 있게 되면 lesson 을 닫으세요.
선택자가 뭐냐
핵심 한 줄
CSS 선택자 = "HTML 의 어느 요소 에 스타일을 적용할지" 지정하는 패턴. 정확히 선택하는 게 유지보수 가능한 CSS 의 시작.
5가지 기본 선택자
결합자 — 관계로 선택
자주 쓰는 가상 클래스
클래스 vs ID — 언제 무엇을
- ▸클래스 (
.) = 여러 곳에 재사용. 90% 의 경우 이거. - ▸ID (
#) = 페이지에 단 하나만. JS 에서 잡거나·앵커링 (#section1)·접근성.
> 💡 현장 합의: 스타일은 항상 클래스. ID 는 JS 후크 또는 anchor 용도로만.
너무 구체적인 선택자 — 유지보수 지옥
선택자가 길수록 HTML 구조에 결합 됩니다. HTML 한 줄 바꾸면 CSS 전부 깨짐. 클래스 이름 1개 가 가장 안전.
BEM 명명법 — 산업 표준
복잡한 컴포넌트에서 충돌 방지·의도 명확. Tailwind·CSS-in-JS 가 등장한 지금은 옛 방식이지만, 전통 CSS 환경에선 여전히 표준.
한 번 정리
기본 5가지 (태그·클래스·ID·속성·가상) 와 결합자 (자식·후손·형제) 만 알면 80% 끝. 깊이 들어가지 말고 클래스 위주 로 단순하게.
🤖 AI 에게 이렇게 요청해보세요
이 lesson 의 개념을 알면 AI 에게 구체적으로 지시할 수 있습니다. 막연한 "고쳐줘" 가 아니라 어휘를 가진 요청 — 그게 토큰 절약의 출발점입니다.
- ▸"이 CSS 의 specificity 충돌을 해결하고 !important 없이 우선순위 맞춰줘"
- ▸"이 클래스명을 BEM 컨벤션으로 리네이밍해줘"
- ▸"이 nested selector 를 더 평탄하게 (depth 2 이하) 리팩토링해줘"
왜 이게 토큰을 줄이나
개념을 모를 땐 AI 답변을 받고도 "그게 뭐예요?" 를 다시 물어야 합니다. 그 "다시 물음" 이 토큰을 잡아먹습니다. 개념 한 번 익혀두면 대화가 한 번에 끝납니다.