상세 컨텐츠

본문 제목

웹 문서의 DOCTYPE.. 올바로 사용하자

프로그래밍/스크립트

by 라제폰 2009. 5. 7. 09:25

본문

HTML 표준에 따르면 각각의 HTML 문서는 문서 형식을 선언할 필요가 있습니다. DOCTYPE 혹은 Document Type Declaration이라고 합니다. 태그로 시작하는 이러한 선언은 브라우저 혹은 HTML 문법 검사기에게 어떤 판번호(Version)의 HTML로 작성된 페이지인지를 알려주게 됩니다. IE(Internet Explorer)에서는 DOCTYPE에 따라 박스 모델을 해석하는 방법 이 다르기 때문에 동일한 화면 구현물을 얻기 위해서 필히 명시해 주어야 합니다.

아래는 웹 페이지에 사용되는 일반적인 문서 형식을 정리한 것입니다.

HTML 2.0

  1. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">  

HTML 2.0 은 대다수의 브라우저가 지원하는 문서 형식입니다. 시작적으로 보여지는 엘리먼트 위주로 구성되어 있고 테이블, 프레임, 다국어 등은 지원되지 않습니다.

Compact HTML 2.0

  1. <!DOCTYPE HTML PUBLIC "-//BBSW//DTD Compact HTML 2.0//EN">  

HTML 2.0의 간략 버전입니다.

HTML 3.2

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"   
  2.     "http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">  

HTML 3.2 부터 제한적으로 스타일 시트를 지원하기 시작했습니다. 역시 프레임과 다국어 등은 지원되지 않습니다.

HTML 4.01 Strict

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   
  2.     "http://www.w3.org/TR/html4/strict.dtd">  
  3. <html lang="ko">  

HTML 4.01 Strict는 HTML 4.01 제한된 엘리먼트 를 제외시켜 좀 더 엄격한 규칙을 적용합니다. 프레임과 앵커의 타켓 속성도 사용하지 못하도록 정하고 있습니다. 이러한 제한을 통해 웹의 접근성과 구조적인 문제를 어느 정도 해결할 수 있습니다.

HTML 4.01 Transitional

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   
  2.     "http://www.w3.org/TR/html4/loose.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">  

HTML 4.01 Strict 보다는 좀 더 유연성을 가질 수 있는 문서 형식입니다. BASEFONT 혹은 CENTER 등의 제한된 엘리먼트를 허용합니다.

HTML 4.01 Frameset

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"   
  2.     "http://www.w3.org/TR/html4/frameset.dtd">  
  3. <html lang="ko">  

HTML 4.01 형식의 프레임 구조를 정의하는 문서 형식입니다. 프레임을 정의하는 HTML 4.01 Transitional 문서를 대체하기 위해 사용합니다.

XHTML 1.0 Strict

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">  

XHTML 1.0 Strict는 HTML 4.01 Strict와 동일합니다. 문법이 XML 구조를 따라야 한다는 점만이 다릅니다.

XHTML 1.0 Transitional

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"   
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">  

HTML 4.01 Transitional의 XML 버전입니다.

XHTML 1.0 Frameset

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"   
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">  
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">  

HTML 4.01 Frameset의 XML 버전입니다.

XHTML 1.1

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"   
  3.     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko">  

XHTML 1.1 은 XHTML 1.0 Strict와 별 차이는 없습니다. 다만 완벽한 XML 표준 문법만을 사용하여야 합니다. Transitional 혹은 Frameset 버전이 제공되지 않습니다. 가장 최근 규격이어서 브라우저에 따라 지원되지 않을 수도 있습니다. 잘 고려한 후 사용해야 하겠습니다.

<html> 태그 안에 쓰인 lang 속성은 CSS Design Korea 포럼의 UI Design 관련 코멘트 에 자세히 설명되어 있으니 그 쪽을 참고하시면 됩니다.

관련글 더보기