**지난 주차의 위클리 페이퍼이지만 블로그 이사로 인해서 새롭게 올리게 되었습니다.**
내용은 유사하지만, 조금 더 보완해서 게시했습니다!
- CSS의 Cascading에 대해 설명해주세요
Cascading이란?
: 계단식으로 내려오는 형태의 폭포를 의미
CSS에서는 여러 CSS규칙이 적용될 때 '순서'에 따라 합쳐지는 것을 의미한다.
상위 요소의 스타일이 하위 요소로 내려오며 상속되는 특징을 계단식으로 내려오는 폭포에 빗대어 사용하는 것 같다.
상위 요소(우선 순위)를 결정 짓는 기준 3가지
1. 스타일 시트의 종류
어떤 스타일 시트의 스타일이냐에 따라 더 높은 우선순위를 가진다.
[ 프로그래머가 작성한 stylesheet ] > [ user agent stylesheet (웹에서 제공하는 기본 스타일) ]
2. 코드상의 순서
같은 선택자를 쓰는 경우, 나중에 씌여진 코드가 우선 순위가 더 높다.
3. 선택자의 명시도 (Specificity)
어떤 선택자를 쓰느냐에 따라 다른 점수를 얻고, 점수가 높을 수록 우선순위가 높아진다.
1) 유형 선택자 ( h1 등 ) 및 의사 요소 ( :before 등)
2) 클래스 선택자, 속성 선택자 ( [type = "radio"] ), 의사 클래스 ( :hover 등)
3) ID 선택자 (#example 등)
기타) 전역 선택자 (*), 조합자 (+, >, ~, " ", ||) 및 부정 의사 클래스 ( :not( ))은 명시도에 영향을 주지 않는다.
사실 우선순위에 위치한 선택자들을 자세히 살펴보면,
왜 우선순위가 높고 낮은지에 대해 조금은 감이 올 것이라고 생각한다.
이때 2번, 3번의 점수가 아주 높아도1번 선택자를 사용하는 것이 우선순위가 더 높다.
100자리 숫자, 10의 자리 숫자, 1의 자리 숫자로 생각하면 우선순위 파악이 더 쉬울 것이다.
내가 사용한 선택자의 우선순위를 확인하고 싶다면, VS Code에서 선택자에 마우스를 hover했을 때 확인 가능하다.
!important
위에서 이야기한 우선순위와 무관하게 가장 높은 우선순위를 가지게 해주는 이른바 치트키이다.
⚠️ MDN 공식 문서의 내용에 따르면, !important를 사용하는 건 자연스러운 명시도 규칙을 깨뜨려 디버깅을 더 어렵게 만든다고 합니다. (되도록 사용하지 말 것)
'🗂️ 개발 이모저모' 카테고리의 다른 글
Redux의 기본 구조와 사용법을 익혀보자! (0) | 2024.05.06 |
---|---|
[Next.js] SSR, Hydration (0) | 2024.03.31 |
TypeScript의 동작원리 & Next.js를 사용하는 이유 (1) | 2024.03.24 |
Git merge의 방법 & Git Flow Branch전략 (0) | 2024.03.22 |
Sementic Tag & Position (0) | 2024.03.14 |