
Cascading(캐스케이딩) : 브라우저가 여러 스타일 규칙이 충돌할 때 어떤 스타일을 적용할지를 결정하는 방식
캐스케이딩에는 세 가지 주요 요소가 작용합니다.
!important가 있는가?CSS는 여러 곳에서 적용될 수 있습니다.
<h1> 태그는 기본적으로 굵은 글씨)<link rel="stylesheet">)<style> 태그)style="color: red;")💡 우선순위:
1. 인라인 스타일(style="")
2. 내부 스타일 시트(<style>)
3. 외부 스타일 시트(.css 파일)
4. 브라우저 기본 스타일
<!DOCTYPE html>
<html lang="ko">
<head>
<style>
p {
color: blue; /* 내부 스타일 */
}
</style>
<link rel="stylesheet" href="style.css"> <!-- 외부 스타일 -->
</head>
<body>
<p style="color: red;">이 문장은 어떤 색일까요?</p> <!-- 인라인 스타일 -->
</body>
</html>
✅ 결과: style="color: red;"가 가장 우선순위가 높아 빨간색이 적용됨.
CSS 선택자가 얼마나 구체적인지에 따라 우선순위가 달라집니다.
특이성 계산 공식 :
1000점#id) → 100점.class), 속성 선택자([attr]), 가상 클래스(:hover) → 10점h1, p 등), 가상 요소(::before) → 1점💡 예제:
p { color: blue; } /* 1점 */
.special { color: green; } /* 10점 */
#unique { color: orange; } /* 100점 */
<p id="unique" class="special">이 문장은 어떤 색일까요?</p>
✅ 결과: #unique의 color: orange;가 적용됨. (100점 > 10점 > 1점)
CSS에서 !important를 사용하면 특이성보다 더 강한 우선순위를 가집니다.
💡 예제:
p {
color: blue !important;
}
#unique {
color: red;
}
<p id="unique">이 문장은 어떤 색일까요?</p>
✅ 결과: color: blue !important;가 적용됨.
(!important는 특이성보다 강력함)
| 우선순위 | 적용 대상 |
|---|---|
!important | 가장 강력, 특이성과 상관없이 우선 |
| --- | --- |
| 인라인 스타일 | style="" 직접 지정한 스타일 |
| ID 선택자 | #id로 지정한 스타일 |
| 클래스, 속성 선택자 | .class, [attribure] 등 |
| 태그 선택자 | h1, p 등 |
| 브라우저 기본 스타일 | 기본 적용 스타일 |
CSS의 캐스케이딩(Cascading) 개념을 이해하면 스타일 충돌이 발생할 때 어떤 스타일이 적용될지 예측 가능합니다.
!important는 마지막 수단으로 사용하세요. (남용 금지❌)