XHTML은 XML 규격에 준하는 엄격한 HTML 형식이다.
문서가 잘 보이기만 한다면야, 사실 HTML을 어떻게 사용해도 상관 없겠지만, 장차 시맨틱 웹 시대를 대비하자면, 가능하면 엄격하게 규격을 맞추어 표준화된 문서를 만들어 두는 것이야말로 생산성 향상, 그리고 자동화의 기초일 것이다.
일반적으로 사용되는 최신의 HTML 버전은 4.01이며, 느슨하게 규격을 적용해 사용하는 HTML 4.01을 transitional로 규정하고, 여기에 표준을 엄격하게 적용해서 만들어내는 형태가 바로 HTML 4.01 Strict 가 되겠다.
(XHTML로 가는 바로 전 단계이다.)
HTML 4.01 Strict 의 요건- 모든 웹 페이지는 문서 형식 정의 태그 ‹DOCTYPE! ...›로 시작한다.
- 가장 상위 태그(엘리먼트)인 ‹html›로 시작해 종료 태그 ‹/html›로 문서의 끝을 마감한다.
- ‹head›와 ‹body›엘리먼트만이 ‹html›태그에 포함될 수 있다.
- ‹head›엘리먼트 안에는 반드시 ‹title›엘리먼트가 포함된다.
- ‹head›엘리먼트에만 ‹meta›와 ‹style›엘리먼트를 넣을 수 있다.
- ‹body›엘리먼트 안에는 반드시 블록 엘리먼트만을 사용한다.
(인라인 엘리먼트는 ‹p›등의 블록 엘리먼트로 감싸 구성하며 독립적으로 사용하지 않는다.)
- 인라인 엘리먼트 내부에는 블록 엘리먼트가 들어갈 수 없다.
- 블록 엘리먼트들은 문단 엘리먼트 ‹p› 바깥에 두어야 한다.
- 리스트 엘리먼트 ‹ul›과 ‹ol›의 내부에는 오직 리스트 아이템 엘리먼트인 ‹li›만이 들어갈 수 있다.
- ‹li›엘리먼트 안에는 텍스트, 인라인, 블록 엘리먼트 모두를 넣을 수 있다.
- ‹blockquote›엘리먼트 안에는 반드시 블록 엘리먼트만을 넣는다.
(인라인 엘리먼트는 ‹p›등의 블록 엘리먼트로 감싸서 넣는다.)
- 인라인 엘리먼트가 서로 중첩되지 않도록 주의를 기울인다.
- ‹img›엘리먼트에는 반드시 alt=""속성을 덧붙인다.
- 프리젠테이션(장식)을 위한 태그 요소는 사용하지 않는다.
XHTML 1.0 의 요건HTML 4.01 Strict 의 요건에, 아래의 기준을 더 추가/변경하면 된다.
- DOCTYPE을 XHTML로 변경한다.
- 최상위 시작 엘리먼트인 ‹html›에 xmlns, lang, xml:lang 속성을 추가한다.
- 모든 태그와 속성들은 소문자(lowercase)로 사용하며, 속성값들에는 ""를 붙여 표현한다.
- 모든 태그는 종료 태그를 가져야 한다. ‹li›는 ‹/li›로 닫아서 마무리해 주어야 하며, 빈 엘리먼트(태그)의 경우 하나의 공백 문자와 /›로 끝나야 한다.
(대표적인 빈 엘리먼트 ‹img› ‹br›의 경우, ‹img› src="......" alt="..." /›, 그리고 ‹br /›과 같이 사용한다.)
- HTML에 사용하는 컨텐츠에서 &를 사용하지 않는다. 꼭 사용해야 한다면 &로 사용하며, 다른 특수 문자들도 마찬가지로 사용한다.
복잡해 보이는가?
사실 조금 어려움이 있는 것도 사실이지만, 일단 익숙해지고 나면 문서가 상당히 구조화되는 것을 느낄 수 있을 것이다.
익숙해지기 전까지는 자신이 만든 문서의 유효성을 늘 점검해 보는 습관을 가져보자.
W3C Markup Validation Service : http://validator.w3.org