DOCTYPE 선언은 HTML 문서의 첫 번째 태그여야 합니까?[복제하다]

StackOverflow https://stackoverflow.com/questions/69828

  •  09-06-2019
  •  | 
  •  

문제

이 질문에는 이미 답변이 있습니다.

우리의 보안 관리자는 클라이언트가 페이지를 요청할 때 모든 HTML 페이지 상단에 약간의 자바스크립트를 동적으로 삽입합니다.DOCTYPE 문 위에 삽입됩니다.나는 이것이 내가 겪고 있는 레이아웃 문제의 원인일 수 있다고 생각합니다.

아이디어가 있으신가요?

도움이 되었습니까?

해결책

예, DOCTYPE은 페이지의 첫 번째 데이터여야 합니다. http://www.w3schools.com/tags/tag_DOCTYPE.asp

다른 팁

예, DOCTYPE이 먼저 와야 합니다.

정의는 다음과 같습니다. http://www.w3.org/TR/REC-html40/struct/global.html.문서는 세 부분으로 구성되어 있으며 DTD가 첫 번째 부분이어야 한다고 나와 있습니다.

HTML에 대한 권장 사항은 HTML을 SGML의 응용 프로그램으로 표현합니다. DOCTYPE 선언은 HTML 요소 앞에 나타납니다(HTML 주석 무시).없이도 DOCTYPE, 추가 SCRIPT 외부 요소 HTML 요소(앞이나 뒤)는 유효한 HTML이 아닙니다.물론 HTML 유효성은 대부분의 브라우저에서 작동하는 한 요구 사항이 아닐 수 있으며 언급된 특수 모드 전환을 통해 다음을 얻을 수 있습니다.없이 DOCTYPE, 많은 브라우저가 특수 모드로 전환되어 레이아웃이 변경될 수 있습니다.

페이지의 HTML 구조를 제대로 분석하고 SCRIPT 올바른 위치에 있는 HEAD 또는 BODY 문서의.이 경우 유효한 HTML은 아니지만 문서 끝에 추가하면 대부분의 웹 브라우저에서 작동합니다.

그래도 문제의 원인이 될 수 있습니다!문서 유형 설정에 따라 달라지는 "쿼크 모드"를 확인하십시오.추가 연구: http://www.quirksmode.org/설명:브라우저를 (주로 IE) 엄격한 표준 컴파일 모드와 느슨한 모드로 전환할 수 있습니다.이는 렌더링에 큰 영향을 미칩니다.TAM의 설정이 이 기능을 켜거나 끌 수 있습니다.

나는 문서에 3개의 부분이 있다고 말하는 w3 사양을 읽었습니다.순서는 가정되며 앞에 작은 js 조각을 금지하는 명시적인 설명은 없습니다.

나는 dicument의 끝에 js를 추가하도록 TAM을 구성하는 것이 가능하다는 것을 이해하지만 그것이 그렇게 명백한 문제를 일으킬 수 있다면 왜 그것을 맨 위에 올려 놓았는지 나보다 낫습니다!

W3c(w3.org), 다음 페이지에 있음 html5/syntax.html, "아. 문서 유형 필수 서문입니다." 이는 필수이며 먼저 와야 한다는 의미로 해석됩니다.

또한 이 순서대로 다음 구성 요소로 구성되어야 한다고 명시되어 있습니다.

  1. 문자열에 대해 ASCII 대소문자를 구분하지 않는 일치인 문자열 <!DOCTYPE.
  2. 하나 이상의 공백 문자입니다.
  3. 문자열에 대해 ASCII 대소문자를 구분하지 않는 일치인 문자열 html.
  4. 선택적으로 DOCTYPE 레거시 문자열 또는 더 이상 사용되지 않는 허용 DOCTYPE 문자열(아래 정의됨).
  5. 0개 이상의 공백 문자.
  6. > (U+003E) 문자입니다.

예, 문서 유형은 문서에서 가장 먼저 나와야 합니다(주석 제외).문서 유형 앞에 스크립트를 삽입하는 것을 피해야 합니다.호환 파서는 이를 수락할 필요가 없습니다.(추가된 스크립트를 수락해야 합니다. ~ 후에 문서의 나머지 부분(대안인 경우)

HTML 5 사양에서:

8.1 HTML 문서 작성

이 섹션은 문서, 작성 도구 및 마크업 > 생성기에만 적용됩니다.특히 적합성 검사기에는 적용되지 않습니다.> 적합성 검사기는 다음 섹션("HTML 문서 구문 분석")에 제공된 요구 사항을 사용해야 합니다.

문서는 주어진 순서대로 다음 부분으로 구성되어야 합니다.

  1. 선택적으로 단일 "BOM"(U+FEFF) 문자입니다.
  2. 주석 및 공백 문자 수 제한 없음.
  3. 문서 유형.
  4. 주석 및 공백 문자 수 제한 없음.
  5. html 요소 형식의 루트 요소입니다.
  6. 주석 및 공백 문자 수 제한 없음.
  7. 위에 언급된 다양한 유형의 콘텐츠는 다음 몇 섹션에서 설명됩니다.

HTML 4.01 사양에서:

7 HTML 문서의 전역 구조

HTML 4 문서는 세 부분으로 구성됩니다.

  1. HTML 버전 정보가 포함된 줄,
  2. 선언적 헤더 섹션(HEAD 요소로 구분됨)
  3. 문서의 실제 내용을 포함하는 본문입니다.바디는 BODY 요소나 FRAMESET 요소로 구현될 수 있다.

[...]

각 섹션 앞이나 뒤에 공백(공백, 줄 바꿈, 탭 및 주석)이 나타날 수 있습니다.

[...]

유효한 HTML 문서는 문서에 사용된 HTML 버전을 선언합니다.문서 유형 선언은 문서에 사용되는 문서 유형 정의(DTD)를 명명합니다([ISO8879] 참조).

태그는 아니지만 그렇습니다.주로 이것이 Internet Explorer(8 이전 버전인 것 같습니다)를 표준 모드로 전환하는 유일한 방법이기 때문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top