CSS(Cascading Stylesheet)는 HTMLSGML이나 XML 기반 문서의 표현 방식을 지정하기 위한 선언적 언어이다.

1 캐스케이딩과 상속

캐스케이딩이란 여러 CSS 규칙이 서로 다른 우선순위에 기반하여 합쳐지는 것을 뜻한다. 예를들어 웹 브라우저에서 표현되는 HTML 문서는 기본적으로 세 계층의 CSS에 영향을 받는다. 가장 우선순위가 낮은 CSS는 웹 브라우저가 제공하는 기본 설정이다. 그 다음으로는 사용자가 지정한 CSS가 적용된다. 사용자 CSS는 대체로 사용자가 직접 작성하기보다는 브라우저 폰트 설정 등을 통해 간접적으로 지정하게 된다. 가장 높은 우선순위로는 저작자(웹 개발자 등)가 작성한 CSS가 적용된다.

상속은 HTML이나 XML 등 CSS를 적용하는 대상이 되는 문서의 각 요소가 갖는 위계 구조와 관련이 있다. 상위 요소에 지정된 스타일이 하위 요소에 자동으로 적용되는 것을 상속이라 말한다.

2 CSS와 관점 지향 프로그래밍

CSS는 관점 지향 프로그래밍과 유사한 점이 많다. 예를 들어 ‘포커스가 주어진 모든 요소에는 푸른 테두리 표시를 하기’라는 규칙은 특정 동작(포커스의 존재 여부)이라는 측면에서의 규칙이다. 한편 ‘모든 제목 요소는 굵은 글씨로 표현하기’라는 규칙은 문서의 의미라는 측면에서의 규칙이다. 또는 ‘메인 섹션 내의 텍스트는 명조체로 표형하기’라는 규칙은 문서의 구조(메인 섹션 하위의 모든 요소)라는 측면에서의 규칙이다. 이와 같이 상이한 관심사에 따라 규칙을 지정할 수 있고, 이러한 규칙들이 우선순위나 상속 관계에 따라 엮이는 과정은 관점 지향 프로그래밍과 대단히 유사하다.