목적
브라우저가 문서를 렌더링할 때 ‘quirks mode’로 전환하는 것을 막기 위함
Quirks Mode
- W3C 표준 정상화 이전에 있었던 Netscape Navigator 와 인터넷 익스플로러를 위해 제작된 웹 페이지도 지원하기 위해 브라우저에서 도입
- quirks mode: Navigator 4, IE 5 의 레이아웃 방식 사용
- no-quirks mode: 현대 HTML과 CSS 스펙을 따름 (full standards)
- limited-quirks mode: 적은 수의 quirk들이 반영되어 있음 (almost standards)
기타
- 일반적으로
<!doctype html>
이외에 더 복잡한 걸 쓸 필요는 없음. 목적 자체가 너무 단순해서. - case-insensitive
- required preamble
- 만약 doctype html이라는 글자를 쓸 수 없는 HTML 생성기를 쓰고 있다면 DOCTYPE legacy string 필요 ← 근데 이런게 실존함?
<!DOCTYPE html SYSTEM "about:legacy-compat">
Content-Type: application/xhtml+xml
페이지를 받는다면 항상 full standards mode를 사용하므로 doctype이 필요없음document.compatMode === 'BackCompat'
이면 quirks mode 사용 중 (아니면'CSS1Compat'
)