옳다고 생각하는 모든 작업을 수행했지만 최신 브라우저에서는 페이지가 올바르게 작동하지 않습니다. 이는 잘못된 XHTML 및 CSS를 작성했기 때문입니다. W3C 표준 DOM(문서 개체 모델)을 사용하여 페이지의 동적 요소를 조작했습니다. 그리고 브라우저가 이러한 표준을 구현하려고 하면 사이트가 실패합니다. 이는 잘못된 문서 유형(DOCTYPE)으로 인해 발생할 가능성이 높습니다. 이 기사에서는 DOCTYPE의 작동 방식을 제공하고 이러한 문서 유형의 실제 실제 사용법을 설명합니다.
왜 DOCTYPE인가?
HTML 및 XHTML 표준에 따르면 DOCTYPE("문서 유형 선언"의 약어)은 브라우저에 사용 중인 (x)HTML 버전을 알려주는 데 사용되며 모든 페이지의 상단에 나타나야 합니다. DOCTYPE은 웹페이지의 중요한 구성요소입니다. DOCTYPE이 없으면 CSS가 더 이상 유효하지 않습니다.
이전에 언급한 ALA 기사(및 기타 흥미로운 점)에서 언급했듯이 DOCTYPE은 Mozilla, IE5/Mac, IE6 또는 IE7과 같은 다른 브라우저에도 적용되어야 합니다.
새로운 DOCTYPE에는 브라우저가 표준과 호환되는 모델로 페이지를 구문 분석(렌더링)하도록 지시하는 전체 URI(sconf 참고: Universal Resource Identifier, Universal Resource Identifier) (전체 URL)가 포함되어 있습니다. (X)HTML, CSS, DOM을 원하는 대로 처리하세요.
불완전하거나 오래된 DOCTYPE을 사용하거나 DOCTYPE을 전혀 사용하지 않으면 브라우저는 해당 모델을 "Quirks" 모델로 변환하게 됩니다. 여기서 브라우저는 사용자가 오래되고 손상된 90년대 이후 코드를 작성하고 있다고 가정합니다.
이 설정을 사용하면 브라우저는 이전 표준을 사용하여 페이지를 구문 분석하고 CSS를 IE4 표준으로 구문 분석하려고 시도합니다. 그리고 특별한 DOM으로 소유자에게 응답합니다(IE는 IE의 DOM에 응답하는 반면 Mozilla와 Netscape 6는 그들이 생각하는 모델에 응답합니다).
의심할 여지없이 이것은 당신이 원하는 것이 아닙니다. 하지만 자주 접하게 되는 일입니다. 따라서 이 기사에서는 이러한 부정확하거나 불완전한 DOCTYPE을 수정하고자 합니다.
(참고: Opera 브라우저는 이러한 규칙을 지원하지 않습니다. 항상 웹 페이지를 표준에 맞는 웹 페이지로 구문 분석하려고 시도합니다. 반면에 Opera는 W3C의 DOM에 대한 강력한 지원을 제공하지 않습니다. 하지만 잘 실행될 수도 있습니다.) Ed: 왜냐하면 이것은 기사가 처음 게시된 후 Opera는 Opera 7에 DOM 호환 기능을 추가했습니다.
DOCTYPE은 어디로 갔나요? (DOCTYPE은 다 어디로 갔나요?)
문서 유형은 브라우저의 WEB 표준에서 중요한 통합 부분이고 W3C가 WEB 표준 작성을 주도하고 있지만 W3C 사이트가 몇 가지 적절한 문서 유형을 제공할 수 있을 것으로 기대하며 이 정보를 더 빠르고 쉽게 찾고 싶을 수도 있습니다. . 하지만 내가 이 글을 쓰는 동안에는 아직 그럴 수 없습니다. {Ed: 이제 W3C는 웹 사이트에 일련의 표준 DOCTYPE을 나열합니다. "내 웹 사이트는 표준입니다. 그리고 귀하의 웹 사이트는?"과 같은 W3C 지침에서 이를 확인할 수 있습니다.}
W3.org는 List Apart, WebReference 또는 Webmonkey가 아닙니다. 원래 WEB 디자이너, 개발자 및 시민 사회 조직이 최신 기술에 대한 이해와 사용을 가속화하도록 돕기 위한 것이 아닙니다. 이것은 그의 직업이 아닙니다.
W3C는 일련의 지침을 게시하지만 대부분의 웹 디자이너는 이를 인식하지 못합니다. #
전용 목록을 볼 필요 없이 W3.org에서 하루 종일 DOCTYPE을 검색할 수 있습니다. 그리고 DOCTYPE(보통 특정 제안이나 작업 초안과 관련된)을 다운로드하면 사이트에서 제대로 작동하지 않습니다.
W3C 사이트 전체에는 W3C 자체 웹사이트를 가리키는 누락된 URI(sconf 참고: 완전한 URI가 아님)가 있는 DOCTYPE이 있습니다. 이러한 URL이 W3C에서 귀하의 웹 페이지로 이동되면 해당 URL은 존재하지 않는 문서가 됩니다.
예를 들어 많은 사이트의 DOCTYPE은 W3.org에서 직접 복사됩니다.
인용된 내용은 다음과 같습니다. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN" |
이 DOCTYPE의 마지막 부분("DTD/xhtml1-strict.dtd")을 보면 이것이 W3C 사이트에 대한 상대 링크임을 알 수 있습니다. 이것은 귀하의 사이트가 아닌 W3C 사이트에 있습니다. 따라서 이 URI는 브라우저에 아무런 영향을 미치지 않습니다. (sconf 참고: W3.org를 방문하면 이는 상대 링크이기 때문에 작동합니다.)
이 DOCTYPE은 실제로 다음과 같이 변경되어야 합니다.
인용된 내용은 다음과 같습니다. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN" |
뒤의 DOCTYPE에는 완전한 URI가 포함되어 있습니다. 이렇게 하면 브라우저가 이를 찾아 문서를 표준 호환 형식으로 구문 분석할 수 있도록 네트워크에 유효한 리소스가 표시됩니다.
DOCTYPE을 사용하는 방법(작동하는 DOCTYPE)
그렇다면 DOCTYPE을 사용하는 방법은 무엇입니까? 물어봐서 다행이에요. 아래의 완전한 DOCTYPE만 있으면 됩니다.
HTML 4.01 엄격한, 과도기적, 프레임
인용된 내용은 다음과 같습니다. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd "> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 프레임셋//EN" " http://www.w3.org/TR/html4/frameset.dtd "> |
XHTML 1.0 엄격한, 과도기적, 프레임워크
인용된 내용은 다음과 같습니다. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN" " 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-transitional.dtd "> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 프레임셋//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd "> |
XHTML1.1 DTD
인용된 내용은 다음과 같습니다. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |