[CSS] Cascading이란?

해피몬·2024년 10월 12일
post-thumbnail

Cascading이란? 🤔

Cascading은 CSS에서 여러 스타일 규칙이 동일한 요소에 적용될 때 우선순위에 따라 스타일이 결정되는 방식을 의미함. CSS는 Cascading Style Sheets의 약자에서 알 수 있듯이, 스타일이 계단식으로 흘러 내려와 특정 규칙에 따라 적용됨. Cascading을 이해하면 CSS의 우선순위 규칙을 알고, 스타일이 예상대로 작동하도록 조정할 수 있음.

Cascading의 원리 🌟

Cascading은 여러 스타일 규칙이 중첩될 때 적용 순서를 결정하는 역할을 함. CSS에서는 다음 세 가지 요소에 따라 스타일 우선순위를 결정함:

명시도(Specificity)
소스의 위치(Source Order)
중요도(Importance)
이 세 가지 규칙이 CSS의 스타일 결정 과정에 관여하며, Cascading을 통해 최종적으로 어떤 스타일이 적용될지 결정됨.

Cascading의 우선순위 요소 🎯

명시도 (Specificity)

명시도는 선택자의 구체성에 따라 우선순위를 부여함. 더 구체적인 선택자일수록 우선순위가 높음. 명시도는 선택자의 유형에 따라 점수를 부여해 계산됨.

선택자 유형설명점수
인라인 스타일요소에 직접 지정된 스타일1000점
ID 선택자# 기호로 정의된 ID 선택자100점
클래스 선택자.class, 속성, 가상 클래스 선택자10점
태그 선택자HTML 태그 이름 선택자1점
전체 선택자* 전체 선택자0점

예시)

/* CSS 코드 */
h1 { color: blue; }            /* 1점 */
.title { color: green; }       /* 10점 */
#header { color: red; }        /* 100점 */

위 코드에서 h1의 색상은 명시도가 가장 높은 #header에 따라 red로 결정됨.

소스의 위치 (Source Order)

명시도가 동일한 경우, 소스 코드의 위치가 우선순위에 영향을 미침. 동일한 요소에 동일한 명시도의 스타일이 적용될 때, 나중에 선언된 스타일이 우선 적용됨.

/* CSS 코드 */
h1 { color: blue; }
h1 { color: green; }

위 코드에서 h1 요소의 색상은 나중에 선언된 green이 적용됨.

중요도 (Importance)

CSS에서는 !important 키워드를 사용해 특정 스타일을 강제로 우선순위로 적용할 수 있음. !important가 붙은 스타일은 명시도나 소스 위치와 상관없이 가장 높은 우선순위를 가지게 됨.

h1 { color: blue !important; }
h1 { color: green; }

위 코드에서 h1 요소의 색상은 !important가 적용된 blue가 적용됨. 그러나 !important는 무분별하게 사용하면 유지보수가 어려워질 수 있으므로, 꼭 필요한 경우에만 사용하는 것이 좋음.

Cascading 활용 팁 💡

  • 명시도를 관리: 가능한 한 ID 선택자보다 클래스 선택자를 사용하여 스타일을 관리하면, 나중에 덮어씌우는 스타일을 추가하기 쉽고 유지보수가 용이함.
  • !important 남용 피하기: !important는 명시도를 무시하므로, 필요한 경우에만 사용하고, 되도록 사용을 최소화함.
  • 계층 구조 활용: HTML 요소의 계층 구조에 따라 CSS 선택자를 설계하면, 명시도를 낮추면서도 필요한 스타일을 적용할 수 있음.
  • 코드 순서에 주의: 동일한 명시도를 가진 스타일은 나중에 작성된 스타일이 적용되므로, 스타일 시트를 작성할 때 코드 순서에 신경을 쓰면 원치 않는 스타일 덮어쓰기를 방지할 수 있음.
profile
슬기로운개발생활🤖

0개의 댓글