CSS 명세 이해하기

CSS 명세를 이해하기 위해 반드시 프로그래머거나 CS 전공일 필요는 없습니다. 만 18세 이상이거나 학사 학위가 필요하지도 않습니다. 매우 꼼꼼하고, 매우 끈기 있고, 매우 철저하기만 하면 됩니다.

명세는 매뉴얼이 아닙니다. 글이 제대로 쓰이지 않았다면 변명의 여지가 없습니다. 만약 그런 부분을 발견한다면 꼭 불만을 남겨주세요. 하지만 명세는 특정 독자를 대상으로 합니다.

제로부터 시작하기

J. David Eisenberg가 웹 디자이너를 위해 유용한 How to Read W3C Specs를 작성했습니다. 기술 명세서를 읽는 것이 익숙하지 않다면, 그 글부터 읽어보기를 권합니다.

또한 CSS에 대해 전혀 모른다면, 먼저 CSS가 무엇이고 어떻게 사용하는지 배우는 것을 추천합니다. 아주 짧은 튜토리얼로는 소개를 통해 CSS 2.1을 시작할 수 있습니다. 더 친절하고 자세한 소개를 원한다면, 디자인보다는 CSS 기본에 집중하는 학습용 CSS 서적을 선택하세요. 텍스트 에디터에서 CSS를 직접 다뤄보고, 몇 개의 모의 홈페이지를 디자인해보세요. 선택자 특이성과 마진 상쇄에 대해 알아보세요. 웹 페이지에 * { border: 1px dashed gray; }를 추가해서 박스 모델을 직접 확인해보세요. 전체적인 흐름을 이해하면 명세의 건조한 기술적 내용들도 쉽게 연결할 수 있습니다.

기초 배우기

CSS 명세를 이해하려면 명세가 기반하고 있는 문맥, 용어, 그리고 기본 개념들을 이해해야 합니다. 명세를 진정으로 이해하고 싶다면, 아래에 나열된 명세 섹션들을 정말로 이해해야 합니다:

  1. 먼저, 모든 명세를 맥락에 맞게 파악하려면 현재 CSS Snapshot을 읽어보세요. CSS 디자인 원칙도 참고하면 좋습니다.
  2. 다음으로, 명세가 어떻게 구성되어 있는지 설명하는 CSS 2.1 1장 전체를 읽으시고, 자주 사용되는 용어들을 소개하는 CSS 2.1 3.1절 (정의)도 읽으세요.
  3. 아래의 CSS 명세 섹션들을 꼼꼼히 읽으세요. 이 섹션들의 개념들은 나머지 명세를 이해하는 데 매우 중요합니다: 표준의 특히 난해한 부분을 해독할 때 이 섹션들을 다시 참고해야 할 수 있습니다.

중요한 세부사항

CSS 2.1 같은 일부 CSS 명세에는 정오표(errata)이 있습니다. 이는 명세가 발표된 후에 수정된 내용입니다. 명세를 해석할 때 반드시 정오표를 확인하세요! 명세는 테스트와 구현을 통해 문제가 발견될 때마다 계속 바뀌고 있습니다. 이러한 수정사항은 아직 명세 본문에 반영되지 않았지만, 명세를 정확하게 이해하는 데 매우 중요합니다. 정오표 페이지는 명세 상단에서 연결되어 있습니다.

이해를 심화하기

명세를 깊이 있게 이해하는 가장 좋은 방법은 실제로 명세(기술 자체가 아니라 명세)를 다뤄보는 것입니다. 이를 위한 최고의 방법은 테스트 케이스를 작성하고, 그 테스트가 명세에 따라 왜 올바른지 설명해보는 것입니다. 직접 재미로 테스트 케이스를 작성할 수도 있지만, QA 프로젝트에 참여하면 더 많이 배우고 CSS 커뮤니티(저자, 구현자, 명세 작성자)에도 기여할 수 있습니다. 테스트 케이스를 작성하거나 개선하고, 변형을 만들어보고, 명세 관련 질문에 답하는 방식으로 배울 수 있습니다…

Web Platform Tests Project
WPT 프로젝트는 CSS 명세와 기타 웹 플랫폼 기술을 위한 공용 테스트 스위트를 관리합니다.
Mozilla 프로젝트
Mozilla 프로젝트는 Firefox 웹 브라우저의 핵심인 Gecko 레이아웃 엔진을 관리합니다.
WebKit 프로젝트
WebKit 프로젝트는 Safari 웹 브라우저의 핵심인 WebKit 레이아웃 엔진을 관리합니다.
Chromium 프로젝트
Chromium 프로젝트는 Chrome, Edge, Brave 등 여러 브라우저의 핵심인 Blink 레이아웃 엔진을 관리합니다.

질문하기

명세를 살펴봤는데도 여전히 이해가 가지 않는 부분이 있다면 www-style에서 질문할 수 있습니다.

Elika J. Etemad
Copyright © 1994–2025 W3C® Privacy policy

Last updated Wed 01 Oct 2025 10:17:27 AM UTC