티스토리 뷰
문서의 유형을 정의하기 위해 작성하는 <!DOCTYPE>에 대해 알아보자.
DTD와 DOCTYPE 선언
웹 문서는 항상 DTD(문서 유형 정의)를 통해서 현재 문서가 어떤 버전으로 기술되었는지 브라우저에 전달되면서 시작한다. DTD(Document Type Definition)는 XHTML, HTML, HTML5 세 가지 유형이 있으며, 선언된 문서 형식에 따라 마크업 속성을 처리하는 기준이 정해지고, 유효성 검사에 활용된다. HTML은 지원되는 태그가 버전별로 상이한데, 때문에 어떤 유형의 문서인지 정의를 해주어야 웹 브라우저에서 올바르게 인식할 수 있는 것이다. 이 문서 유형을 정의해주는 방법이 DOCTYPE 선언인 것이다.
왜 선언해야 하는가?
DOCTYPE 선언은 항상 문서 최상단에 위치해야 하며, 생략될 경우 웹 브라우저에서 표준 모드(standards mode)가 아닌 비표준 모드(quirks mode)로 인식해 크로스 브라우징에 오류가 발생할 수 있다. 또한 HTML 버전마다 적용되는 태그가 있고, 아닌 태그가 존재하는데 문서 유형의 선언 없이 구버전과 신버전을 사용한다면 브라우저에서는 현재 버전을 기준으로 구버전을 문법 오류로 간주할 수 있다. 이미 오래전에 작성된 구버전들을 모두 수정할 수 없기 때문에 예전 자료들의 보존을 위해서라도 호환할 수 있는 방안이 필요했다. 구버전의 문서를 오류로 간주한다면, 과거 대부분의 자료들은 사라지게 될 것이다.
선언 이유 요약
- 크로스 브라우징
- 과거 버전 문서의 보존
버전별 DOCTYPE 선언
HTML5 선언
HTML5에서는 여러 버전 중에서 가장 간단하게 선언된다. html 태그 앞, 문서의 가장 최상단에 위치해야 한다.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
</body>
</html>
HTML 4.01 선언
Strict
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML 1.0 선언
Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1 선언
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
'HTML' 카테고리의 다른 글
<!DOCTYPE> 선언 이유와 예시 코드 (0) | 2023.07.03 |
---|---|
검색 엔진 최적화 SEO란? SEO 진단 / 가이드 / 중요성 (0) | 2021.07.06 |
HTML의 정의 / HTML5란 / HTML5 원칙 / HTML5와 HTML4 차이점 (0) | 2021.06.26 |
[코딩기초] 이미지 형식 jpg, gif, png 차이점, 장단점 (0) | 2021.06.25 |
[코딩기초] 웹표준과 웹접근성 정의 / 가이드 (0) | 2021.06.25 |