<!DOCTYPE html>

Chanhee Jang·2023년 4월 12일

Frontend

목록 보기
3/3

DOCTYPE

HTML 파일의 <!DOCTYPE html> 은 문서 형식을 선언하는 것이다. <!DOCTYPE html> 는 HTML5 이후의 문서 형식이라고 선언하는 것이다. html이라고 작성할 때 대소문자 구분은 하지 않는다.

문서 형식 선언을 하면 좋은 점은 무엇일까? 우리의 웹 브라우저는 렌더링을 하기 전, 어느 방식으로 렌더링을 할건지 선택한다. 표준 모드(Standard Mode)와 쿼크 모드(Quirks Mode)로 나뉜다. (Almost Standard Mode도 있지만 여기서 논하지는 않는다.)

일단 쿼크모드에 대해 언급하자면, 쿼크 모드는 오래된 웹 페이지의 하위 호환을 위해 쓰이는 방식이다.

하위 호환을 위해 쓰이는 쿼크 모드로 동작하게 된다면 브라우저별로 다른 결과물을 보여주게 된다.

다음은 쿼크모드를 야기하는 원인이다.

  1. DOCTYPE 선언이 존재 하지 않음
  2. DOCTYPE 선언이 잘못 적혀 있음
  3. DOCTYPE 선언 내 dtd의 URI가 생략된 경우 (HTML5부터는 해당이 없다.)

고전 방식으로서의 DOCTYPE 표기

HTML5 이전에는 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 같은 형태로 DOCTYPE을 선언해줬다.

즉, 해당 html 버전에서 참조할 DTD 링크까지 표기하는 형태인 것이다.


DTD

DTD는 Document Type Definition 으로 문서의 형식을 ‘정의’ 하는 것이다. (위의 선언과는 다르다.)

HTML5 이전은 dtd 파일을 통해 그 html의 문서 형식을 정의해주고, <!DOCTYPE html PUBLIC ...> 을 통해 해당 html을 dtd에 맞게 렌더링해준다.


현재 방식으로서의 DOCTYPE 표기

DTD에다가 문서 형식을 집어넣으려니 HTML5이후부터는 지원해야 될 것이 너무나 복잡해졌다.

때문에 <!DOCTYPE html> 이라는 최소한의 표기로 html임을 보장하여 표준모드로 렌더링하도록 한다.

profile
What is to give light must endure burning

0개의 댓글