"문서 형식 선언"(Document Type Declaration) 또는 DOCTYPE이란 어떤 SGML이나 XML 기반 문서 내에 그 문서가 특정 문서 형식 정의(DTD)를 따름을 지정하는 것이다. 본래 DTD에 기반한 SGML 도구를 이용해 문서 해석 가능성과 유효성을 검사하기 위한 목적으로 문서 내에 삽입되었다.
*SGML (Standard GeneralStandard Generalized Markup Language)
: 다른 마크업 언어를 기술하는 또 다른 마크업 언어
*XML (Extensible Markup Language)
: W3C에서 개발한 마크업 언어를 만드는데 사용되는 다목적 마크업 언어
라고 사전적 의미를 찾아볼 수 있다....
무슨 얘기인가 할 수도 있지만, 쉽게 말하자면
내가 작성하려는 HTML 문서가 어떤 문서 형식을 갖고 있는 지 선언해주는 것을 말한다.
웹 브라우저에서는 문서 형식 선언이 없으면 *쿼크모드로 렌더링을 해서 각 브라우저마다 다른 형태의 결과물을 보여주게 되는데 이것을 방지하기 위해 문서 형식 선언을 하고 그로인해 HTML 문서를 표준모드로 렌더링 할 수 있게된다.
*쿼크모드
: 오래된 웹 페이지의 하위 호환성 유지를 위해 사용되며, W3C나 IETF의 표준을 엄격하게 준수하지 않는다. 같은 코드라도 웹 브라우저마다 다르게 해석해서 다른 결과물을 보여준다.
- Doctype 무선언 -> 쿼크모드로 렌더링 -> 브라우저마다 다른 결과물 출력
- Doctype 선언 -> 표준모드로 렌더링 -> 브라우저 별로 같은 레이아웃으로 결과물 출력
1. HTML 4.01 문서 형식 선언 (Doctype)
HTML 4.01의 문서 형식은 Strict, Transitional, Frameset으로 나뉘며, 선언도 마찬가지이다. HTML 4.01 Strict는 표현 효과 위주의 마크업 태크들 (<b>, <i> 등)의 사용을 금지한다.
- Strict (엄격한 타입) : <center>, <font> 등의 14가지 태그를 사용하지 않는다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- Transitional (유연한 타입) : HTML 4.01 Strict에서 폐기된 몇 가지 태그를 허용한다.
<!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">
2. XHTML 1.0
XHTML 1.0도 HTML 4.01과 마찬가지로 Strict, Transitional, Frameset 세 가지로 구분하여 선언한다.
- 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">
3. XHTML 1.1
XHTML 1.0 Strict와 동일하게 엄격한 문법을 갖고있다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4. HTML5
HTML5의 경우 문서 형식 선언(DOCTYPE)이 불필요하지만 웹 브라우저들의 표준 모드 활성화를 위해 최소한의 형태로 유지되어 사용된다.
<!DOCTYPE html>
'Frontend > HTML' 카테고리의 다른 글
[html 태그] a태그 (0) | 2020.03.06 |
---|---|
Meta tag (메타 태그) (0) | 2020.02.13 |
HTML5 - Content Model (콘텐츠 모델) (0) | 2020.02.12 |
HTML inline(인라인) vs block(블록) 요소 (0) | 2020.02.11 |
HTML 5이란? (0) | 2020.02.10 |