uulog

<!doctype> - 문서 유형을 지정하는 선언문

웹 문서의 시작을 알려주는 <html> 태그보다 먼저 사용하는 것이 '문서 유형(document type)'을 지정하는 <!doctype>이다. 이때 지정하는 문서 유형이란 웹 브라우저에게 '이제 부터 처리할 문서는 HTML 문서이고 어떤 유형을 사용했으니 그 버전에 맞는 방법으로 해석하라'라고 알려주는 것이다.

이전 버전 HTML4에서는 문서 유형이 여러 가지였고 문서 유형을 지정하는 소스도 길었기 때문에 잘못 사용되거나 아예 문서 유형을 사용하지 않는 경우도 있었다. 하지만 HTML5부터는 아래와 같이 단 한줄로 문서 유형을 선언한다.

<!doctype html>

웹 브라우저는 이 소스만 보고 'HTML5에 맞추어 문서를 해석하면 되겠다'라고 이해한다. HTML5에서는 현재 문서가 HTML 문서라는 점만 표기하는 것으로 문서 유형 선언이 끝난다.

HTML4와 XHTML의 문서 유형 선언

엄격 모드(strict mode)
HTML4 표준 문법을 정확히 따르는 문서를 작성한다면 엄격 모드로 지정한다. 이 경우, HTML4 문법에 조금만 어긋나면 안 되기 때문에 실수로 닫는 태그 하나라도 빠뜨리면 웹 브라우저에서 오류를 일으킨다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

호환 모드(transitional mode)
HTML4 표준 문법을 조금 벗어나더라도 허용하는 모드다. 예를 들어 닫는 태그를 빠뜨리더라도 웹 브라우저에서 오류를 일으키진 않는다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

프레임세트 모드(frameset mode)
프레임세트란 웹 브라우저 화면을 분할해 한 화면에 여러 문서를 동시에 표시하는 방법인데, 웹 문서에서 프레임세트를 사용할 경우 프레임세트 모드로 지정한다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

만약 위에서 설명한 형식에 맞게 문서 유형을 정의하지 않았을 경우, 어떤 브라우저에서도 문서를 표시할 수 있도록 하기 위해 매우 오래된 브라우저 버전(IE 5.5)에 맞게 기준을 내려 웹 문서를 인식한다. 이것을 관용 모드(quirks mode)라고 한다. 하지만 관용 모드는 웹 표준이 고려되지 않은 유형이기 때문에 같은 소스 코드라도 웹 브라우저마다 다르게 해석되어  의도한 것과 다른 결과를 낳을 수도 있다.

블로그의 정보

uulog

chaz.uu

활동하기