Front-End/CSS
CSS: 계단식(Cascade) 및 상속(Inheritance)
__sum__
2025. 6. 15. 18:33
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