CSS의 Cascading

CSS 캐스케이딩(Cascading)이란?
CSS 캐스케이딩이란 여러 개의 CSS 규칙이 동일한 HTML 요소에 적용될 때 어떤 스타일이 최종적으로 적용될지를 결정하는 우선순위 규칙을 의미합니다. 쉽게 말해, 여러 스타일이 충돌할 때 어떤 스타일이 우선인지 정하는 규칙입니다.
왜 캐스케이딩이 필요할까요?
- 다양한 스타일 정의: 하나의 HTML 요소에 여러 개의 클래스나 ID가 부여될 수 있고, 상위 요소의 스타일이 하위 요소에 영향을 미치는 등, 다양한 방식으로 스타일을 정의할 수 있습니다.
- 스타일 충돌: 이렇게 여러 스타일이 정의되면 어떤 스타일이 적용될지 모호한 상황이 발생할 수 있습니다.
- 우선순위 결정: 캐스케이딩은 이러한 스타일 충돌을 해결하고, 어떤 스타일이 최종적으로 적용될지 결정하는 역할을 합니다.
캐스케이딩의 우선순위는 어떻게 결정될까요?
캐스케이딩은 다음과 같은 요소에 따라 우선순위가 결정됩니다.
- 중요도(!important):
!important속성이 선언된 스타일은 다른 어떤 스타일보다 우선합니다. 하지만!important는 남용하면 스타일 관리가 어려워지므로 신중하게 사용해야 합니다.
- 명시도(Specificity):
- 스타일 규칙이 얼마나 구체적인지에 따라 우선순위가 결정됩니다.
- 일반적으로 인라인 스타일 > ID 선택자 > 클래스 선택자 > 태그 선택자 순으로 명시도가 높습니다.
- 소스 순서:
- 동일한 명시도를 가진 스타일 규칙이 여러 개일 경우, 나중에 선언된 스타일이 우선 적용됩니다.
예시:
CSS
HTML
<p class="important-text">이 문단의 색깔은 무엇일까요?</p>
위 예시에서 p 태그에는 color: blue 와 color: red 라는 두 개의 스타일이 적용될 수 있습니다. 하지만 .important-text 클래스 선택자는 p 태그 선택자보다 명시도가 높기 때문에 최종적으로 color: red 가 적용됩니다.
정리:
- CSS 캐스케이딩은 스타일 충돌을 해결하고, 원하는 스타일을 정확하게 적용하기 위한 필수적인 개념입니다.
- 중요도, 명시도, 소스 순서 등 다양한 요소를 고려하여 스타일 우선순위가 있습니다.
!important는 남용하면 스타일 관리가 어려워지므로 신중하게 사용해야 합니다.
