에듀테크 프로젝트 대시보드
CSS 특이성과 캐스케이드
!important가 최종적으로 모든 것을 뒤집습니다.
이 계산과 캐스케이드(cascade) 순서를 직접 실험해 보세요.
아래 4개의 규칙이 모두 같은 <button>의 배경색을 노리고 있습니다.
토글을 켜서 규칙을 "활성화"하고, 실제로 어떤 색이 이기는지 확인하세요.
button 타입 선택자 (0,0,1)
.btn.warn 클래스 2개 (0,2,0)
#save-btn ID 선택자 (1,0,0)
style="..." (1,0,0,0)
.btn.warn { ... !important } — 모든 것을 뒤집음
style="color:red". 사실상 무한대에 가까운 최상위 점수.#header 1개당 +1..btn, [type], :hover 1개당 +1.div, ::before 1개당 +1.*, 결합자(> + ~ 공백), :not() 자체는 점수 0 (단, :not() 안의 선택자는 계산에 포함).!important 남발은 캐스케이드를 무력화해서
나중에 디버깅을 어렵게 만듭니다. ID 선택자로 특이성을 억지로 높이는 것도 재사용성을 떨어뜨리므로,
되도록 클래스 기반 선택자 + 낮고 평평한 특이성을 유지하는 것이 좋습니다 (BEM 방법론이 이 원칙을 따릅니다).