HTML은 현재 4.01까지 나와있습니다. 이 HTML 4.01을 XML을 이용하여 재구성한 것이 XHTML입니다. XML은 문서를 구성하고 데이터를 구조화하는데 유용하며 현재는 안쓰는 곳이 없다고 할 정도로 웹에서 필수가 되었습니다. XML에 대한 자세한 이야기는 이곳에서 다루지 않겠습니다.
XHTML을 사용하는 이유는? 웹표준 준수 및 디자인과 데이터의 분리, 웹접근성 향상등 이제는 필수 입니다. 현재 XHTML은 1.1까지 나왔습니다.
XHTML은 HTML 4.01을 재구성 한 것이기 때문에 HTML 4.01을 안다면 크게 어렵지 않습니다.
몇가지 규칙만 지켜주면 됩니다.
그 전에 간단한 용어를 익히도록 하겠습니다.
엘레멘트(element) :태그를 뜻합니다.
애트리뷰트(attribute) : 태그의 속성을 뜻합니다.
문서타입정의(DTD) : Document Type Definitions 웹페이지의 문서형식을 뜻합니다.
그럼 이제 XHTML의 규칙을 알아 보겠습니다.
1) XML 문서 이므로 XML 선언을 한다.
<?xml version="1.0" encoding="UTF-8"?>
하지만 IE의 버그로 인해서 이 것을 선언 할 경우 IE는 비표준 모드로 동작합니다.
때문에 실무에서는 적용하지 않지만 앞으로 IE6이 IE7로 모두 옮겨간다면 적용해도 괜찮을 겁니다.
2) DTD를 선언한다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
문서타입은 단순히 “나는 아무개 문서입니다.”를 나타내 주는 것으로 이 선언을 바탕으로 웹브라우저의 웹페이지 랜더링 방식이 변하게 됩니다. XHTML에는 이런 DTD가 3가지 있습니다.
strict.dtd
W3C에서 사실상 가장 권장하는 DTD 입니다. Strict 라는 단어의 뜻에서 알 수 있듯이 문법적인 오류를 전혀 허용하지 않는 DTD 선언입니다.
transitional.dtd
Transitional Mode 의 경우 XHTML 문법을 지키는 것은 마찬가지 이지만 Deprecated Element의 사용이 허용되며, body Element의 bgcolor, text 등의 Attribute 를 사용할 수 있습니다.
frameset.dtd
Frameset Mode의 경우는 이 사이트의 경우처럼 브라우저 창을 2개 이상으로 분할하여 사용하고 싶을 때 Frameset 페이지에 선언해 줍니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
이것은 W3C에서 모든 새로운 웹 페이지에 적용하도록 권고하고 있습니다.
3) 문서들이 잘 구성되어야 합니다.
<span><a></span></a> ( X )
<span><a></a></span> ( O )
4) 엘레멘트와 트리뷰트 모두 소문자이어야 합니다.
<A HREF=””></A> ( X )
<a href=””></a> ( O )
5) 엘레멘트 모두 닫혀야 합니다. 빈 엘레멘트도 닫혀야 합니다.
<div> <hr> <img> ( X )
<div></div> <hr/> <img/> ( O )
6) 애트리뷰의 값은 반드시 따옴표로 둘러싸야 합니다.
<img src=abc.com/> ( X )
<img src=”abc.com”/> ( O )
7) 애트리뷰트 최소화가 없습니다. 모든 애트리뷰트에는 값이 필요합니다.
<input type=”radio” selected/> ( X )
<input type=”radio” selected=”selected”/> ( O )
위의 사항들이 가장 기초적이며 필수적인 것들 입니다.
그외 XHTML에서 사용하지 말아야 하는 엘레멘트들도 있습니다.
http://www.w3schools.com/xhtml/xhtml_reference.asp
위의 사이트에는 XHTML에서 허용하는 엘레멘트가 나열되어 있습니다.
나열된 것 외의 엘레멘트는 사용하지 않도록 주의해야 합니다.
각 엘레멘트들의 특성과 속성등은 틈틈히 익혀두어야 웹접근성을 공부할 때 도움이 됩니다.
어차피 HTML 4.01에서 다뤘던 것들과 많이 다르지 않으므로 공부에 큰 어려움을 없을 것 입니다.
허용 가능한 엘레멘트들의 사용법은 HTML 4.01에 대한 문서를 참고해도 문제없습니다.
XHTML 자체가 HTML 4.01을 재구성 한 것이기 때문입니다.