답변:
기본적으로 DOCTYPE은 페이지에서 사용될 HTML을 설명합니다.
브라우저는 DOCTYPE을 사용하여 페이지 렌더링 방법을 결정합니다. DOCTYPE을 포함하지 않거나 올바르지 않은 것을 포함하면 쿼크 모드가 트리거 될 수 있습니다.
여기서 중요한 점은 Internet Explorer의 쿼크 모드는 Firefox (및 기타 브라우저)의 쿼크 모드와는 상당히 다릅니다. 즉 , 쿼크 모드가 트리거되는 경우 표준 모드에서 렌더링하는 것보다 페이지가 모든 브라우저와 일관되게 렌더링되도록 노력 하는 것이 훨씬 더 어려워집니다.
Wikipedia에는 다양한 DOCTYPE 사용시 렌더링 의 차이점에 대한 심층적 인 요약이 있습니다. XHTML은 특정 DOCTYPE에 의해 가능하며, XHTML (신화와 현실) 에서 잘 다루는 XHTML의 사용에 대해 약간의 논쟁이 있습니다 .
HTML5 DOCTYPE ( <!DOCTYPE html>
HTML5 이전의 브라우저에서는 표준화 된 렌더링을 트리거하지 않는 "스키니 doctype"으로 만 알려져 있음)과 같은 다른 "표준 준수"렌더링 DOCTYPE과는 다른 DOCTYPE 사이에는 미묘한 차이가 있습니다. HTML 4.01 과도기 :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
DOCTYPE은 소비하는 사용자 에이전트 (웹 브라우저, 웹 크롤러, 유효성 검증 도구)에게 파일의 문서 유형을 알려줍니다. 이를 사용하면 소비자가 의도 한대로 HTML을 올바르게 구문 분석 할 수 있습니다.
HTML, XHTML 및 프레임 세트에 대해 여러 가지 DOCTYPE이 있으며 각 모드에는 엄격 및 전환 모드가 있습니다. Strict는 마크 업이 정의 된 표준을 정확하게 사용하고 있다고 말합니다. 자세한 내용은 W3C DTD 페이지를 참조 하십시오.
Quirksmode는 기본적으로 표준이 훨씬 덜 존중되고 정의 된 브라우저 전쟁 시대의 레이아웃 방법입니다. 일반적으로 유효한 표준 모드 페이지는 다양한 브라우저에서보다 일관되게 레이아웃되지만 필요한 특정 기능이 없을 수 있습니다. 이러한 기능 중 하나는 앵커 태그의 대상 속성입니다. 쿼크 모드의 사이트는 이러한 차이점을위한 훌륭한 자원이다.
마지막으로 새로운 HTML5 표준은 매우 간단한 DOCTYPE을 제안합니다.
<!DOCTYPE html>
이 DOCTYPE을 사용하면 페이지가 표준 모드이고 HTML임을 지정할 수있는 정방향 호환 방식입니다. 이것은 Google이 사용하는 방법이며 기억하기 쉽습니다. XHTML을 사용하지 않을 경우이 DOCTYPE을 사용하는 것이 좋습니다.
doctype은 문서가 사용하는 HTML / XHTML 버전을 정의합니다. 유효성 검사기를 통해 코드를 실행할 때 유효성 검사기가 확인할 HTML / XHTML 버전을 알 수 있도록 doctype을 사용하려고합니다. 이 페이지는 좋은 개요를 제공합니다.
사용할 수있는 일반적인 문서 유형은 다음과 같습니다.
어떤 doctype을 사용해야하는지는 사용중인 코드에 따라 다르지만 아이디어를 얻으려면 W3C 유효성 검사기를 통해 코드를 실행 하고 "기타 옵션"메뉴 의 문서 유형 드롭 다운 메뉴를 사용하여 다른 doctype을 시도하십시오. .
웹 페이지에서 사용되는 HTML (XHTML 포함)에서 DOCTYPE은 DOCTYPE의 정확한 철자에 따라 몇 가지 브라우저 모드 (쿼크 모드, 표준 모드, 거의 표준 모드) 중 하나를 트리거하는 문자열입니다. 이를 사용하여 페이지에 가장 적합한 브라우저 모드를 선택하려고합니다.
공식적으로 SGML 및 XML에서 DOCTYPE 선언은 마크 업 언어의 공식 구문 규칙을 지정하는 DTD (Document Type Definition)에 대한 참조입니다. 어떤 브라우저도 DTD를 사용하거나 액세스 한 적이 없습니다. 그러나 HTML5 모드를 제외하고 SGML 및 W3C Markup Validator 와 같은 XML 마크 업 유효성 검사기 에서 사용됩니다. 따라서 DOCTYPE의 선택에 따라 문서가 제출 된 경우 유효성 검증 기가 작동하는 방식이 결정됩니다. 그러나 사용자 인터페이스에서 유효성 검사기 작동 모드를 선택할 수도 있습니다. (SGML과 XML 프로세서는 다른 방식으로 DOCTYPE을 사용할 수도 있지만 질문은 HTML 컨텍스트와 웹 브라우저 및 밀접하게 관련된 소프트웨어에만 국한됩니다.)
DOCTYPE의 신뢰할 수있는 목록이 없습니다. 각 HTML 사양 또는 초안은 고유 한 DOCTYPE 또는 DOCTYPE을 정의합니다. 모드 선택시 브라우저가 인식하는 DOCTYPE 세트는 브라우저마다 다릅니다. 실제로 HTML5에는 몇 가지 "레거시 DOCTYPE"이 나열되어 있지만 실제로 <DOCTYPE html>
는 HTML5에 정의 된 것과 다른 DOCTYPE을 사용할 이유가 없습니다 . 표준 모드 (새 페이지에 권장)를 원하는 경우 해당 DOCTYPE을 사용할 수 있고 쿼크 모드 (레거시 페이지에 필요할 수 있음)를 원하는 경우 DOCTYPE을 사용할 수 없습니다.
"표준 모드"는 일반적으로 브라우저가 HTML, CSS, DOM 및 기타 사양을 최대한 준수하는 작동 모드를 의미합니다. 일반적으로 완전한 적합성을 의미하지는 않습니다. "Quirks mode"는 브라우저마다 다르지만 일반적으로 IE 5와 같은 매우 오래된 브라우저의 동작을 모방하려는 시도를 의미합니다. 이전 페이지의 기능과 버그에 의존 할 수 있다는 가정하에 오래된 페이지를 계속 작동시키는 것입니다. 오래된 브라우저. Quirks 모드에서 발생 하는 설명을 참조하십시오 . HTML5에는 "쿼크 모드"라는 개념이 다소 다르며 Quirks Mode Living Standard 라는 문서와 매우 유사합니다 .
일반적인 문제는 쿼크 모드와 표준 모드에서 요소 너비가 다르게 계산된다는 것입니다. 즉, 쿼크 모드에서 작동하도록 설계된 페이지가 표준 모드에서 (또는 그 반대로) 볼 경우 페이지 레이아웃이 다소 변경되거나 완전히 엉망이 될 수 있습니다.
따라서 <!DOCTYPE html>
새 페이지에 사용하고 이전 페이지에 사용했던 모든 DOCTYPE (있는 경우)을 유지해야합니다.
그러나 쿼크 모드는 일부 브라우저에서 CSS의 많은 새로운 기능이 지원되지 않음을 의미합니다. 이는 일부 CSS3 기능으로 이전 페이지를 향상 시키려면 표준 모드를 트리거하는 DOCTYPE으로 전환해야 할 수도 있음을 의미합니다. 이 경우 페이지를 검토하고 테스트하여 페이지가 표준 모드에서 실행되는지 확인해야합니다.
독 타입은 HTML이나 XHTML과 같이 페이지를 어떤 언어로 브라우저에 알려줍니다. 예를 들어
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
브라우저에게 페이지를로 렌더링하도록 지시하십시오 HTML4 strict
. 오래된 브라우저는 페이지를 잘못 렌더링하는 데 사용되었으므로 새로운 브라우저는 오래된 문서 유형을 찾을 때 오래된 브라우저의 오류를 시뮬레이션합니다.
오늘은 최소한 HTML4 이상의 XHTML을 사용해야합니다.
doctypes에 대한 블로그 항목은 올바른 DOCTYPE으로 사이트를 수정하는 것입니다! ( A List Apart에서 ).
우선 사용해야 할 하나의 doctype이 없지만 대부분의 디자이너는 XHTML 1.0 Strict 내에서 작동하도록 노력합니다.
doctype은 html 내에서 사용할 수있는 태그에 대한 선언 일뿐입니다 (브라우저는 정의 된 것보다 많거나 적은 것을 사용할 수 있지만) 실제로 doctype 파일을 열고 읽을 수 있습니다 ( XHTML 1.0 Strict )
doctype을 지정하지 않으면 브라우저는 최선의 추측을 시도하지만 항상 올바른 유형을 누르지는 않습니다.
Quirks 모드는 브라우저에서 이전 버전과 호환되는 데 사용되는 기술입니다. 쿼크 모드의 좋은 예는 IE가 상자를 렌더링 하는 방법 입니다.
doctype은 xhtml과 같은 문서의 내용이 웹 페이지와 같이 어떻게 보이는지 설명하는 문서입니다. 참고 : 이것은 해당 페이지의 구문 만 정의하며 페이지 렌더링은 DTD에 의해 정의되지 않습니다!
예를 들어, doctype은 <table>
-tag가 어떻게 보이는지-어떤 속성을 받아들이고 어떤 속성 / 값 유형이 각 속성에 허용 되는지 정의 할 수 있습니다. 현재 웹 페이지의 어휘집으로 생각하십시오.
Wikipedia 에는 일반적으로 사용되는 다양한 Doctype에 대한 정보 페이지가 있습니다. 마음에-자신 만의 doctype을 만드는 것을 막을 수있는 것은 없습니다. 그러나 브라우저가 문서를 렌더링하는 방법을 모르는 경우가 있습니다.
사용할 DTD는 작성하려는 내용에 따라 다릅니다. 예를 들어 XHTML은 HTML과 완전히 다른 DTD를 가지고 있습니다.
웹에서 doctype은 표준, 거의 표준 또는 쿼크 모드를 원하는지 여부 만 표시합니다.
쿼크 모드의 변경 사항은 브라우저에 따라 다릅니다. Firefox, Opera, Safari 및 Chrome은 <table><tr><td><img></td></tr></table>
(solution :)과 같은 코드에서 텍스트 하위 자의 공간을 제거하는 것과 같이 제한된 쿼크 세트를 구현합니다 td img { vertical-align:bottom; }
. 반면에 IE는 IE5.5에서 렌더링 엔진으로 되돌아갑니다. 당신이 사용할 수 없습니다 것을 의미 있는 2000 년 이후 구현 된 새로운 기능을.
표준 모드를 트리거하려면 HTML5 doctype을 사용하는 것이 <doctype html>
가장 쉬운 방법이므로 사용하는 것이 좋습니다 .