0. 왜 중요할까?
CSS 는 Cascading Style Sheets 의 약자이며, CSS 라는 단어를 이해하는 데 있어 첫 번째 단어 cascading 은 매우 중요합니다. CSS는 여러 규칙이 동시에 하나의 요소에 적용될 수 있습니다. 이때 "어떤 규칙이 실제로 적용될지"를 결정하는 것이 바로 계단식 + 우선 순위 + 상속 + 중요도 (!important)입니다. 이 시스템이 없다면 CSS는 매우 혼란스러울 수밖에 없습니다.
즉, CSS 충돌을 해결하는 핵심 규칙 세트입니다.
1. 계단식(Cascade)
핵심 개념
- 같은 요소에 여러 규칙이 적용될 때, CSS는 우선 적용할 규칙을 결정해야 합니다.
- 이 과정을 계단식(Cascade)이라고 부릅니다.
적용 우선순위 순서 (위에서 아래로 비교)
- 중요도 (
!important) - 출처(origin): 사용자 → 작성자 → 브라우저 기본
- 우선 순위(Specificity)
- 소스 순서(Source Order): 나중에 작성된 규칙이 이김
예시
h1 {
color: blue;
}
h1 {
color: red;
}
➡ 결과: red (같은 specificity → 나중에 선언된 red가 적용됨)
2. 우선 순위(Specificity)
핵심 개념
선택자의 "구체성"을 점수로 환산하여, 더 구체적인 선택자가 우선 적용됩니다.
우선순위 계산 방식
| 선택자 종류 | 점수 계산 기준 |
|---|---|
인라인 스타일 (style) |
1000점 |
ID 선택자 (#id) |
100점 |
클래스, 속성, 의사 클래스 (.class, [type], :hover) |
10점 |
요소, 의사 요소 (div, ::before) |
1점 |
#main→ 100.box.text→ 20ul li a→ 3style="..."→ 1000
중요 포인트
:not()은 내부 선택자의 점수만 포함합니다.- 결합자(
>,+,~, 공백)는 점수에 영향 없음.
예시
h1 { color: black; } // 1점
.title h1 { color: blue; } // 11점
#main h1 { color: red; } // 101점
➡ 결과: red (가장 높은 점수)
3. 상속(Inheritance)
핵심 개념
부모 요소의 일부 스타일 속성은 자식에게 자동 전달(상속)됩니다.
상속되는 속성 예시
✔️ 상속됨
color,font-family,line-height,visibility
❌ 상속 안 됨
width,height,padding,border,display
명시적 상속 키워드
| 키워드 | 설명 |
|---|---|
inherit |
부모로부터 강제 상속 |
initial |
브라우저 기본값 사용 |
unset |
상속 가능한 속성 → 상속, 아니면 초기화 |
revert |
사용자 스타일 초기화, 기본 스타일로 복원 |
all |
모든 속성에 위 속성을 한 번에 적용 가능 |
p {
all: unset;
}
→ p 요소의 대부분의 속성을 초기화함
4. !important의 역할
!important가 선언된 속성은 모든 계단식 규칙을 무시하고 우선 적용됩니다.- 단,
!important끼리 충돌하면 우선순위(Specificity) 높은 쪽이 이깁니다. - 계단식이 정상적으로 작동하는 방을 변경하므로, 반드시 필요한 경우가 아니라면 절대 사용하지 않는 것이 좋습니다.
p {
color: blue !important;
}
#myText {
color: red;
}
➡ 결과: blue (!important가 우선)
5. CSS 적용 우선순위 전체 흐름 정리
한 요소에 여러 규칙이 적용될 경우, 다음 순서로 판단합니다:
- 중요도(!important)
- 출처(origin)
- 브라우저 기본 < 사용자 정의 < 개발자 정의 <
!important선언
- 브라우저 기본 < 사용자 정의 < 개발자 정의 <
- 선택자의 우선순위(Specificity)
- 소스 코드 내 순서 (나중에 선언된 것 우선)
6. 실전 디버깅 팁
- 개발자 도구(F12) → Elements 탭에서 어떤 CSS가 적용되었고, 어떤 것이 무시되었는지 확인 가능
- 취소선이 그어진 규칙은 덮어쓰인 스타일입니다.
- 우측에서
computed탭 확인 시 실제 최종 적용값 확인 가능
요약
| 항목 | 의미 | 판단 기준 |
|---|---|---|
| 계단식 | 여러 규칙이 충돌 시 적용 우선 결정 | 중요도 > 출처 > 구체성 > 소스순 |
| 우선순위 | 선택자가 얼마나 구체적인가 | ID > Class > Tag |
| 상속 | 부모로부터 값 물려받기 | 일부 텍스트 속성만 기본 상속 |
| !important | 계단식 무시하고 강제 적용 | 꼭 필요한 경우에만 사용 |
이 구조를 이해하면 CSS가 "왜 작동하지 않지?"라는 의문에 정확히 답을 찾을 수 있습니다.
출처
계단식 및 상속 - Web 개발 학습하기 | MDN
이 수업의 목적은 CSS 가 HTML 에 적용되는 방법과 충돌을 해결하는 방법을 제어하는 CSS 의 가장 기본적인 개념인 — 계단식, 우선 순위 및 상속 — 에 대한 이해를 발전시키는 것입니다.
developer.mozilla.org
'Front-End > CSS' 카테고리의 다른 글
| CSS: 값과 단위 (0) | 2025.06.16 |
|---|---|
| CSS: 박스 모델 (0) | 2025.06.14 |
| CSS 선택자: 결합자(Combinator) (0) | 2025.06.13 |
| CSS 레이아웃: Floats (0) | 2025.06.12 |
| CSS 선택자: 의사 클래스와 의사 요소 (0) | 2025.06.12 |