Day 4. Why it's Called CSS
웹 개발을 하다 보면 CSS가 왜 'Cascading Style Sheets'라고 불리는지 궁금했던 적이 있을 것이다. 오늘은 CSS의 가장 핵심적인 특징인 '캐스케이딩'에 대해 이야기해보려 한다. 이 개념을 제대로 이해하면 CSS를 훨씬 더 효과적으로 활용할 수 있다.
1. 여러 스타일 규칙이 동시에 적용된다
CSS에서 중요한 점은 서로 다른 여러 규칙이 동시에 같은 요소에 영향을 미칠 수 있다는 것이다. 링크는 이것을 보여주는 아주 좋은 예시다. 개발자 도구로 검사해보면, 우리가 정의한 규칙이 분명히 여기에 영향을 미치고 있지만, 브라우저의 기본 스타일링도 함께 적용되고 있음을 볼 수 있다.
2. 기본 스타일과 사용자 정의 스타일의 공존
우리가 세 가지 기본 스타일 중 두 가지를 재정의하고 있지만, 이 커서 스타일과 같은 것은 여전히 링크에 영향을 미치고 있다. 이것은 마우스를 링크 위로 움직일 때 어떤 마우스 커서를 표시할지 제어하는 스타일이다. 여기서는 기본값이 괜찮아서 변경하지 않았지만, 원한다면 이것도 재정의할 수 있다.
3. 호버 상태의 추가적인 규칙 적용
링크에 마우스를 올리면 또 다른 규칙이 적용된다. 개발자 도구에서도 이것을 볼 수 있는데, '요소 상태 토글'을 클릭하고 '호버'를 선택하면, 호버 상태일 때 요소에 영향을 미치는 모든 규칙을 보여준다. 우리가 추가한 호버 규칙이 바로 그 목적으로 링크에 영향을 미치게 된다.
4. 컨테이너의 스타일 상속
실제로는 더 많은 효과들이 적용되는데, 예를 들어 단락 규칙도 링크에 영향을 미친다. 링크가 단락 안에 있기 때문에 단락의 폰트 패밀리도 상속받는 것이다. 이는 CSS의 상속 개념으로, 과정 후반부에서 더 깊이 다룰 예정이다.
5. 캐스케이딩의 의미
이것이 바로 'Cascading Style Sheets'라고 불리는 이유다. 여러 CSS 규칙이 하나의 동일한 요소에 영향을 미칠 수 있다. 따라서 한 요소의 최종 스타일은 여러 소스에서 '폭포수처럼 흘러내려' 형성된다고 볼 수 있다.
6. 스타일 우선순위의 이해
과정 후반부에서는 스타일이 서로 어떻게 오버라이드하는지 더 깊이 평가할 예정이지만, 이 시점에서도 이미 알아둘 가치가 있는 개념이다. 스타일 충돌 시 어떤 규칙이 우선되는지 아는 것은 CSS 작업에서 매우 중요하다.
CSS를 처음 배울 때는 단순히 '스타일을 입히는 도구'로만 생각하기 쉽다. 하지만 진짜 CSS의 매력은 이런 캐스케이딩의 원리를 이해하고 활용할 때 드러난다. 여러 스타일 규칙들이 서로 어떻게 상호작용하고, 최종적으로 어떤 스타일이 적용되는지 이해한다면, 복잡한 레이아웃도 훨씬 효율적으로 구현할 수 있다.
결국 CSS 마스터의 길은 '어떻게 스타일을 추가하는가'가 아니라 '어떻게 스타일이 적용되는 흐름을 제어하는가'에 달려있다. 이것이 CSS를 단순한 기술이 아닌 예술로 만드는 핵심이다.