HTML <!DOCTYPE> 선언
정의 및 특징
DOCTYPE 선언은 HTML 문서에서 <html> 태그를 정의하기 전에 가장 먼저 선언되어야만 합니다.
이러한 DOCTYPE 선언은 HTML 태그는 아니지만, 선언된 페이지의 HTML 버전이 무엇인지를 웹 브라우저에 알려주는 역할을 하는 선언문으로, 대소문자를 구분하지 않습니다.
HTML 4.01에서 DOCTYPE 선언은 SGML을 기반으로 하기 때문에 DTD를 참조해야 합니다. DTD는 브라우저가 콘텐츠를 정확하게 표현하도록 마크업 언어에 대한 규칙을 명시합니다.
하지만 HTML5는 SGML을 기반으로 하지 않기 때문에 DTD를 참조할 필요가 없습니다.
예제
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>HTML !DOCTYPE declaration</title>
</head>
<body>
<p>이 문서는 HTML 문서입니다.</p>
</body>
</html>
지원하는 브라우저 및 버전
태그명 | ||||||
---|---|---|---|---|---|---|
<!DOCTYPE> |
지원함 | 지원함 | 지원함 | 지원함 | 지원함 | 지원함 |
HTML 4.01과 HTML5에서의 DOCTYPE 선언
HTML 4.01에서는 DOCTYPE을 세 가지 방법으로 선언할 수 있었습니다.
이 DTD는 모든 HTML 요소와 속성들을 포함하고 있지만, 더 이상 사용되지 않거나 아직 정식으로 포함되지 못한 요소들은 포함하고 있지 않습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
이 DTD는 모든 HTML 요소와 속성들뿐만 아니라 더 이상 사용되지 않거나 아직 정식으로 포함되지 못한 요소들까지도 포함하고 있습니다. 하지만 프레임셋(frameset) 콘텐츠의 사용은 허용하지 않습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
이 DTD는 모든 HTML 요소와 속성들, 더 이상 사용되지 않거나 아직 정식으로 포함되지 못한 요소들까지도 모두 포함하며, 프레임셋(frameset) 콘텐츠의 사용까지 허용합니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
하지만 HTML5에서는 단 한 가지 방법으로도 DOCTYPE을 선언할 수 있습니다.
<!DOCTYPE html>