>  기사  >  웹 프론트엔드  >  DOCTYPE 선언의 기능과 사용법에 대한 자세한 설명_HTML/Xhtml_웹페이지 제작

DOCTYPE 선언의 기능과 사용법에 대한 자세한 설명_HTML/Xhtml_웹페이지 제작

WBOY
WBOY원래의
2016-05-16 16:41:301595검색

1. 브라우저 렌더링 모드 및 문서 유형

일부 웹페이지는 표준에 따라 생성되지만 대부분은 그렇지 않습니다. 표준을 준수하는 웹 페이지를 만들 수 없더라도 브라우저가 표준에 따라 해당 페이지를 올바르게 표시하기를 원합니다. 현재 수많은 웹페이지가 비표준 코드로 가득 차 있으며 여전히 정상적으로 작동하고 있습니다. 실제로 이전 브라우저용으로 설계된 대부분의 코드는 최신 브라우저에서 올바르게 표시됩니다(렌더링은 다를 수 있음). 그 이유는 무엇입니까? 실제로 최신 표준을 엄격하게 따르면 해당 페이지의 존재 기반이 완전히 훼손될 수 있습니다. 물론 이는 변화를 원하는 어떤 브라우저에서도 받아들일 수 없는 일입니다.

브라우저 렌더링 모드

최신 브라우저에는 표준 준수 웹페이지와 이전 브라우저용으로 설계된 웹페이지를 모두 지원하도록 설계된 다양한 렌더링 모드가 포함되어 있습니다. 그 중 표준 모드(즉, 엄격한 렌더링 모드)는 최신 표준을 준수하는 웹 페이지를 렌더링하는 데 사용되는 반면, Quirks(포함) 모드(즉, 느슨한 렌더링 모드 또는 호환성 모드)는 디자인된 웹 페이지를 렌더링하는 데 사용됩니다. 기존 브라우저의 경우. 또한 Mozilla/Netscape 6에는 이전 버전의 표준용으로 설계된 웹 페이지를 지원하기 위해 새로운 Almost Standards 모드가 추가되었습니다.

독타입 전환이란 무엇인가요?
웹페이지 상단에 있는 doctype 선언은 브라우저를 올바른 렌더링 모드로 전환하는 열쇠입니다. 브라우저는 doctype 선언에 지정된 문서 유형을 올바르게 표시하기 위해 자동으로 적절한 렌더링 모드로 전환합니다.

이론적으로는 매우 직관적인 스위치여야 합니다. doctype이 현재 웹 페이지가 표준(즉, HTML 4 또는 XHTML 1)을 따르는 문서임을 나타내면 브라우저는 표준 모드로 전환됩니다. doctype이 지정되지 않거나 HTML 3.2 이하가 지정된 경우 브라우저는 Quirks 모드로 전환됩니다. 이런 방식으로 브라우저는 오래된 비표준 웹 페이지를 완전히 버리지 않고도 표준을 준수하는 문서를 올바르게 표시할 수 있습니다.

doctype 전환 문제
그러나 doctype 전환은 불완전한 해결책입니다. 웹 문서에서 doctype 선언을 사용하더라도 브라우저는 예상한 렌더링 모드로 웹 페이지를 표시하지 않을 수 있습니다. 그 이유는 잘못된 문서 유형, XHTML 웹 페이지를 포함한 )의 다른 시작을 포함하여 다각적입니다. 그러나 IE, Opera 및 이전 버전의 Safari에서는 모두 문서의 첫 번째 줄이 doctype 선언일 것으로 예상합니다. 따라서 그 앞에 다른 것이 있으면(XML 프롤로그 포함) 해당 문서 유형이 인식되지 않습니다. 따라서 XML 프롤로그가 있으면 IE, Opera 및 Safari가 Quirks 모드로 전환됩니다. XML 프롤로그는 필요하지 않으므로 XHTML 페이지에서는 안전하게 생략할 수 있습니다. 참고: XML 프롤로그에서 누락된 인코딩 속성을 보충하려면 http-equiv 메타 태그에 charset 속성을 포함해야 합니다.

누락된 URL 또는 상대 URL:
전체 doctype 선언에 해당 DTD(문서 유형 정의) 파일의 URL을 포함합니다. URL이 없거나 상대 경로가 지정된 경우(정규화된 인터넷 주소가 아닌) 대부분의 브라우저는 doctype 선언에 지정된 모드에 관계없이 Quirks 모드로 들어갑니다.

잘못된 문서 유형:
브라우저는 문서 유형 선언의 형식과 형식에 매우 민감합니다. 잘못된 문서 유형을 인식할 수 없으면 강제로 Quirks 모드로 전환됩니다. 이유가 있으므로 직접 입력하는 대신 알려진 올바른 문서 유형을 복사하여 문서에 붙여넣는 것이 좋습니다. 잘못된 문서 유형이 발생하는 일반적인 이유는 문서 유형의 첫 번째 부분과 URL 사이에 공백이 없기 때문입니다. 두 줄의 문서 유형을 한 줄로 접으면 공간이 없어지는 경우가 많습니다.

전환 기간 동안의 Doctype:
전환 기간 동안 브라우저가 Doctype을 처리할 때 불일치가 발생할 가능성이 가장 높습니다. IE와 Opera는 표준 모드를 ​​사용하고, Netscape 6 및 이전 버전의 Safari는 Quirks 모드를 사용합니다. Netscape 7, Mozilla 1 및 최신 버전의 Safari는 표준 모드의 내결함성 버전인 Netscape의 Almost Standards 모드를 사용합니다.
알 수 없는 문서 유형:
브라우저가 인식할 수 없는 문서 유형을 처리할 때도 불일치가 있습니다. IE와 Opera는 표준 모드로 전환됩니다. 즉, 인식할 수 없는 문서 유형이 아직 브라우저에 통합되지 않은 새로운 표준이라고 가정합니다. 반면 Netscape 6은 인식할 수 없는 문서 유형을 발견하면 Quirks 모드로 전환합니다.
Doctype 전환은 다양한 브라우저의 불일치를 확인하고 다양한 문제를 사전에 방지할 수 있다면 브라우저를 올바른 렌더링 모드로 전환하고 웹 페이지를 올바르게 표시하는 효과적인 방법이 될 수 있습니다.

2. 올바른 doctype 선언을 사용하세요

우리는 일반적으로 페이지를 만들 때 이를 무시할 수 있습니다(저를 포함하여 저는 일반적으로 브라우저 기본값을 작성하고 사용하지 않는 것이 너무 게으릅니다). 현재 웹 페이지 코딩 표준화가 급증함에 따라 모든 사람이 이 세부 사항을 이해해야 합니다. 유용하다. 속담처럼 규칙 없이는 규칙도 없습니다.

대부분의 웹 문서에는 상단에 doctype 선언이 있지만 많은 사람들이 이에 관심을 두지 않습니다. 이는 새 문서를 만들 때 웹 저작 소프트웨어가 엉성하게 처리하는 많은 세부 사항 중 하나입니다. doctype은 많은 사람들이 간과하지만 표준을 준수하는 모든 웹 문서의 필수 요소입니다. Doctype은 코드 유효성 검사에 영향을 미치며 브라우저가 궁극적으로 웹 문서를 표시하는 방법을 결정합니다.

doctype의 역할

doctype 선언은 읽기 프로그램이 문서의 마크업을 해석하기 위해 사용해야 하는 규칙 세트를 나타냅니다. 웹 문서의 경우 "리더"는 일반적으로 브라우저나 유효성 검사기와 같은 프로그램이고 "규칙"은 W3C에서 게시한 DTD(문서 유형 정의)에 포함된 규칙입니다.

각 DTD에는 웹 문서의 내용을 표시하는 데 사용되는 일련의 태그, 속성 및 속성이 포함되어 있으며, 어떤 태그가 다른 태그에 나타날 수 있는지 지정하는 규칙도 포함되어 있습니다. 제안된 각 웹 표준(예: HTML 4 Frameset 및 XHTML 1.0 Transitional)에는 고유한 DTD가 있습니다. 문서의 마크업이 doctype 선언에 지정된 DTD를 따르지 않으면 문서가 코드 확인을 통과하지 못하고 브라우저에 올바르게 표시되지 않을 수 있습니다. 마크업 불일치에 대해서는 브라우저가 유효성 검사기보다 더 관대합니다. 그러나 잘못된 문서 유형 선언으로 인해 웹 페이지가 잘못 표시되거나 전혀 표시되지 않는 경우가 많습니다.

올바른 문서 유형을 선택하세요

올바른 Doctype 선언을 얻으려면 DTD를 문서가 따르는 표준에 맞게 만드는 것이 중요합니다. 예를 들어, 문서가 XHTML 1.0 Strict 표준을 따른다고 가정하면 문서의 doctype 선언은 해당 DTD를 참조해야 합니다. 반면에 doctype 선언이 XHTML DTD를 지정하지만 문서에 이전 스타일의 HTML 마크업이 포함되어 있는 경우 이는 부적절합니다. 마찬가지로 doctype 선언이 HTML DTD를 지정하지만 문서에 XHTML 1.0 Strict 마크업이 포함되어 있는 경우에도 마찬가지입니다. 부적절하다.

때로는 doctype 선언을 전혀 사용할 필요가 없는 경우도 있습니다. 유효한 doctype 선언이 지정되지 않으면 대부분의 브라우저는 내장된 기본 DTD를 사용합니다. 이 경우 브라우저는 내장된 DTD를 사용하여 사용자가 지정한 태그를 표시하려고 시도합니다. 일부 임시 문서(많은 문서)를 급하게 함께 처리하는 경우 실제로 doctype 선언을 생략하고 브라우저의 기본 표시를 수락하는 것을 고려할 수 있습니다.

Doctype 선언을 처음부터 작성하여 선택한 DTD를 가리키도록 할 수 있습니다. 그러나 대부분의 웹 문서는 W3C에서 발표한 국제적으로 인정받는 웹 표준 중 하나를 준수해야 하므로 해당 문서에는 일반적으로 다음 표준 Doctype 선언 중 하나가 포함됩니다.

HTML 2:

HTML 3.2:

HTML 4.01 엄격:

http://www.w3.org/TR/html4/strict. dtd"> HTML 4.01 전환:

http://www.w3.org/TR/html4/loose .dtd">

HTML 4.01 프레임세트:http://www.w3.org/TR/html4/frameset .dtd">

XHTML 1.0 엄격:http://www.w3.org/TR/xhtml1/DTD /xhtml1-strict.dtd">

XHTML 1.0 전환:http://www.w3.org/TR/xhtml1/DTD /xhtml1-transitional.dtd">

XHTML 1.0 프레임셋:http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">

XHTML 1.1:http://www.w3.org/TR/xhtml11/DTD/xhtml11 .dtd">

XHTML 1.1 + MathML + SVG:http://www.w3 .org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">

      除了상면列출시 doctype声明, 具有特殊要求的一些文档还使用了其他几种声明.

      doctype声明常是文档的第一行,要在标记以及其他文档内容之前。注意,XHTML文档中,doctype的前面偶尔会出现一条XML处理指令(也称为XML 프롤로그) :

http://www.w3.org/TR/html4/loose.dtd
">这个是DW自动在网页文件页增加了DTD信息,可以删。 删除后,浏览器会使사용용默认DTD。삼、选择什么样의 DOCTYPE
      查看本页原代码,可以看到第一行就是:

http://www .w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd

">

!DOCTYPE">http://www.w3.org/TR/xhtml1/DTD /xhtml1-frameset.dtd">!DOCTYPE

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

br">

http://www. w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">br>。完整代码如下:  !DOCTYPE">http://www.w3.org/TR/ xhtml1/DTD/xhtml1-strict.dtd">!DOCTYPE

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "


http://www. w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

어떤 DOCTYPE을 선택합니까
이상적인 상황은 물론 엄격한 DTD이지만 웹 표준을 처음 접하는 대부분의 디자이너에게는 과도기 DTD(XHTML 1.0 Transitional)가 현재 이상적인 선택입니다(전환 DTD를 사용하는 이 사이트도 포함). 또한 이 DTD를 사용하면 프리젠테이션 계층 식별자, 요소 및 속성을 사용할 수 있으므로 W3C 코드 확인을 통과하는 것도 더 쉽습니다. 참고: 위에서 언급한 "표현 계층의 식별 및 속성"은 조판용 테이블, 배경색 식별 등과 같이 순전히 성능 제어에만 사용되는 태그를 의미합니다. XHTML에서 태그는 표현을 달성하기 위한 것이 아니라 구조를 표현하기 위해 사용됩니다. 우리 전환의 목적은 궁극적으로 데이터와 표현을 분리하는 것입니다.

예: 마네킹이 옷을 갈아입습니다. 모델은 데이터와 같고, 옷은 표현의 형태입니다. 모델과 옷이 분리되어 있어 마음대로 옷을 갈아입을 수 있습니다. 원본 HTML4에서는 데이터와 프리젠테이션이 혼합되어 있어 프리젠테이션 형식을 한 번에 바꾸는 것이 매우 어려웠습니다. 하하, 조금 추상적이네요. 이 개념은 지원 과정에서 점차적으로 이해되어야 합니다.

보충
DOCTYPE 선언은 모든 XHTML 문서의 상단, 모든 코드 및 마크업 위에 배치되어야 합니다.

4. DOCTYPE HTML PUBLIC의 공식 정의는

입니다.

!DOCTYPE

---------------------------------- --- ---------------------

HTML 문서가 따르는 DTD(문서 유형 정의)를 지정합니다.

Microsoft® Internet Explorer 6의 새로운 기능. 이 명령문을 사용하여 Internet Explorer 6 이상을 표준 호환 모드로 전환할 수 있습니다.

문법

HTML 최상위 요소 가용성 "등록//조직//태그 유형//정의 언어" "URL"

가능한 값

최상위 요소: DTD에 선언된 최상위 요소 유형을 지정합니다. 이는 선언된 SGML 문서 유형에 해당합니다. HTML 기본값. HTML.

가용성: FPI(정식 공개 식별자)가 공개적으로 액세스 가능한 개체인지 시스템 리소스인지 여부를 지정합니다. 공개 기본값. 공개적으로 액세스 가능한 객체입니다. SYSTEM 로컬 파일이나 URL과 같은 시스템 리소스입니다.

등록: 해당 기관이 국제표준화기구(ISO)에 등록되어 있는지 여부입니다. 기본. 기관명이 등록되었습니다. - 기관명이 등록되어 있지 않습니다. IETF(Internet Engineering Task Force) 및 W3C(World Wide Web Consortium)는 등록된 ISO 조직이 아닙니다.

조직: !DOCTYPE 선언에서 참조하는 DTD의 생성 및 유지 관리를 담당하는 그룹 또는 조직의 이름, 즉 OwnerID를 지정합니다. IETF IETF. W3C W3C.

유형: 공용 텍스트 클래스, 즉 참조되는 객체의 유형을 지정합니다. DTD 기본값. DTD.

태그: 공개 텍스트 설명, 즉 참조된 공개 텍스트에 대한 고유한 설명 이름을 지정합니다. 버전 번호는 뒷면에 부착될 수 있습니다. HTML 기본값. HTML.

정의: 문서 유형 정의를 지정합니다. 프레임셋 프레임셋 문서. Strict는 스타일 시트가 이미 잘 확립되어 있기 때문에 W3C 전문가가 단계적으로 폐지하기를 원하는 모든 대표적인 속성과 요소를 제외합니다. Transitional에는 FrameSet 요소를 제외한 모든 항목이 포함됩니다.

언어: 참조된 개체를 생성하는 데 사용되는 자연어 인코딩 시스템인 공개 텍스트 언어를 지정합니다. 언어 정의는 ISO 639 언어 코드(대문자 두 글자)로 작성되었습니다. EN 기본값. 영어.

URL: 참조된 개체의 위치를 ​​지정합니다.

메모

이 선언은 문서 시작 부분, html 태그 앞에 나타나야 합니다.

!DOCTYPE 요소에는 닫는 태그가 필요하지 않습니다.

이 요소는 Microsoft® Internet Explorer 3.0에서 HTML로 사용할 수 있습니다.

이 명령문을 사용하면 Internet Explorer 6 이상에서 엄격한 표준 호환 모드로 전환할 수 있습니다. 이 기능을 켜려면 문서 상단에 !DOCTYPE 선언을 포함하고 법적 태그를 지정하고 경우에 따라 정의 및/또는 URL을 지정하세요.

참고: 표준 호환성 모드에서는 다른 버전의 Internet Explorer와의 호환성이 보장되지 않습니다. 표준 호환 모드가 켜져 있으면 문서의 렌더링 동작이 향후 버전의 Internet Explorer와 다를 수 있습니다. 콘텐츠가 본질적으로 고정되어 있는 경우(예: CD에 굽는 경우) 이 모드를 사용하면 안 됩니다.

다음 예에서는 !DOCTYPE 선언을 사용하여 문서가 준수하는 DTD를 지정하고 Internet Explorer 6 이상을 표준 호환 모드로 전환하는 방법을 보여줍니다. 다음 예의 선언은 모두 HTML 4.0 DTD 준수를 지정합니다. 두 번째 선언은 "Strict"를 지정합니다. 첫 번째 유형의 명령문은 지정되지 않았습니다. 두 명령문 모두 Internet Explorer 6 이상을 표준 호환 모드로 전환합니다.


;

다음 예의 선언은 모두 "전환" HTML 4.0 DTD를 준수함을 지정합니다. 두 번째 선언은 DTD의 URL을 지정합니다. 첫 번째 유형의 명령문은 지정되지 않았습니다. 두 번째 명령문은 Internet Explorer 6 이상을 표준 호환 모드로 전환합니다. 첫 번째 진술은 그렇지 않습니다.


  "
http://www.w3.org/TR/html4/loose.dtd">

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.