[HTML DTD]
HTML DTD는 사용하고자 하는 HTML 문서의 종류와 버전을 표시합니다. HTML 문서느 약간의 종류가 있으며, W3C에서 정의한 방식을 따릅니다. 이렇게 HTML DTD를 넣어 작성한 문서는, 소위 웹표준에 맞는 문서의 시작을 의미합니다. DTD의 사용은 브라우저마다 차이를 최소화하며, W3C에서 정의된 방식에 따르겠다는 말을 의미합니다. HTML 문서는 반드시 HTML DTD를 넣어 사용하는 것이 좋을 것입니다.
[HTML DTD의 사용]
HTML DTD는 반드시 HTML문서의 가장 처음에 작성되어야 합니다.
### html위와 같은 첫 행의 "<!doctype ~>"은 HTML DTD를 말하며, 사용하고자 하는 HTML 문서 종류에 따라 다소 차이가 있습니다. 위와 같이 모두가 생략되어 html만 있는 경우는 HTML5를 사용함을 말합니다.
<!doctype html>
<html>
<head>
<title> HTML5 문서 </title>
</head>
<body>
HTML5를 따르는 문서입니다.
</body>
</html>
[HTML의 종류와 DTD]
HTML에 따라 사용하고자하는 DTD는 다음과 같은 종류가 있습니다. XML과 호환되는 XHTML이 있으며, 또한 1.0, 4.01과 같은 버전의 표시, 엄격한 준수를 의미하는 strict와 그렇지 못한 transitional(또는, loose)로 구분이 됩니다. 아래와 같이 종류가 많으나 실제 사용하는 경우는 몇 개 없습니다. 어떠한 DTD를 사용하지 모를 첫 사용자라면 우선 "HTML4.01의 Transitional DTD"로 연습하기 바랍니다.
HTML4.01의 Strict DTD
### plain;gutter: false;엄격한 HTML4.01을 따르며, font와 같은 사용이 금지된 요소 등과 frameset 을 사용할 수 없습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
HTML4.01의 Transitional DTD
### plain;gutter: false;font와 같은 사용이 금지된 요소 등을 사용할 수 있으나, frameset 을 사용할 수 없습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
HTML4.01의 Frameset DTD
### plain;gutter: false;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
Transitional과 같으며 frameset 을 사용할 수 있습니다.
XHTML1.0의 Strict DTD
### plain;gutter: false;엄격한 XHTML1.0을 따르며, font와 같은 사용이 금지된 요소 등과 frameset 을 사용할 수 없습니다. 또한, XML의 문법 사용에 맞아야 합니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
XHTML1.0의 Transitional DTD
### plain;gutter: false;font와 같은 사용이 금지된 요소 등을 사용할 수 있으나, frameset 을 사용할 수 없습니다. 또한, XML의 문법 사용에 맞아야 합니다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML1.0의 Frameset DTD
### plain;gutter: false;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Transitional과 같으며 frameset 을 사용할 수 있습니다.
XHTML1.1 DTD
### plain;gutter: false;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.0 Strict과 같으나, 루비(Ruby)와 같은 모듈의 사용을 할 수 있게 합니다.
HTML5 DTD
### plain;gutter: false;
<!DOCTYPE html>
HTML5를 따릅니다.
[HTML DTD 종류의 선택]
과거에서 현재까지 4.01과 Transitional을 많이 사용했으며, 최근의 대부분은 xml과 호환이 되는 XHTML 1.0의 Transitional을 많이 사용합니다. 저는 HTML5는 하위를 지원하며, 간략해졌기에 편의상 HTML5의 DTD로 즐겨 사용합니다.
[표준모드와 쿼크모드]
브라우저가 HTML문서를 처리를 할 경우, HTML DTD가 있으면 그에 맞는 W3C에서 정의한 방식에 따라 처리를 합니다. 이를 표준모드라고 하며, 그렇지 않은 경우를 쿼크모드라고 합니다.
쿼크모드에서는 브라우저 회사마다 정의된 방식에 따르며, 그 결과에 차이를 보입니다. 대표적으로 박스모델에서 폭(width)과 높이(height)의 여백처리는 IE가 W3C의 표준과 달리 처리하기에 다른 결과를 보입니다.
그러하기에 HTML DTD를 꼭 명시하여, 표준모드로 브러우저가 처리할 수 있게 해야 합니다. 이것이 웹표준을 위한 첫 시작이라 봅니다.
'HTML/HTML5 > HTML기초강좌' 카테고리의 다른 글
| HTML문서의 종류와 선언 (DTD) (0) | 2010/09/07 |
|---|---|
| HTML 요소와 문법 (0) | 2010/09/06 |
| HTML 문서 개괄 (0) | 2010/09/06 |
| HTML 문서 작성하기 (0) | 2010/09/06 |






