Ist die DOCTYPE-Deklaration der erste Tag in einem HTML-Dokument sein? [Duplikat]

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

  •  09-06-2019
  •  | 
  •  

Frage

    

Diese Frage bereits eine Antwort hier:

         

Unsere Sicherheitsmanager fügen dynamisch ein wenig Javascript an der Spitze jeder HTML-Seite, wenn eine Seite vom Client angefordert wird. Es wird über die DOCTYPE-Anweisung eingefügt. Ich denke, das könnte die Ursache für die Layout-Probleme sein das ich habe.

Ideen anyone?

War es hilfreich?

Lösung

Ja, DOCTYPE müssen die ersten Daten auf der Seite sein: http: //www.w3schools. com / tags / tag_DOCTYPE.asp

Andere Tipps

Ja, muss die DOCTYPE an erster Stelle.

Die Definition ist hier: http://www.w3.org /TR/REC-html40/struct/global.html . Beachten Sie, dass es sagt, ein Dokument besteht aus drei Teilen, und die DTD muss zuerst.

Die Empfehlung für HTML drückt es als eine Anwendung von SGML, das erfordert, dass die DOCTYPE Erklärung erscheint vor dem HTML-Elemente (HTML Kommentare zu ignorieren). Auch ohne die DOCTYPE außerhalb des SCRIPT Element ein HTML Element hinzugefügt wird (entweder vor oder nach dem es es) ist nicht gültig HTML. Natürlich kann keine Voraussetzung für Sie, so lange HTML Gültigkeit sein, wie es in den meisten Browsern funktioniert, und dann Sie die Macken-Modus-Umschaltung erwähnt bekommen: ohne DOCTYPE, viele Browser schaltet in den Quirks-Modus, möglicherweise Ändern des Layouts .

Ich gehe davon aus dem TAM-Skript-Fragmente wird durch einen Proxy oder andere hinzugefügt werden, die richtig nicht in der Lage ist, um die HTML-Struktur der Seite zu analysieren und die SCRIPT in der richtigen Position in den HEAD oder BODY des Dokuments einfügen. In diesem Fall wird das Hinzufügen, bis zum Ende des Dokuments, während nicht gültig HTML, wird in den meisten Web-Browsern.

Es könnte die Ursache des Problems, obwohl sein! Check out „Quirks-Modus“, wie das auf Einstellungen Doctype abhängt. Weitere Studie: http://www.quirksmode.org/ Erklärung: Sie Ihren Browser in (meist IE) strengen Standards compilant Modus und losen Modus umschalten. Dies wird erheblich beeinflussen zu machen. TAM Einstellung dieses Ein / Aus eingeschaltet haben könnte.

las ich die w3-Spezifikationen, die nur sagen, dass es 3 Teile zu einem Dokument. Die Sequenz wird davon ausgegangen, und es gibt keine explizite Aussage verbietet zum Beispiel ein wenig js Front Snippit up.

Ich verstehe, dass es möglich ist, TAM zu konfigurieren, dass die js am Ende des dicument hinzuzufügen, aber es schlägt mich, warum sie es oben setzen, wenn es so offensichtlich Probleme verursachen kann!

W3c (bei w3.org), auf einer Seite mit dem Namen html5 / syntax.html , sagt „a DOCTYPE ist eine erforderliche Präambel“, die ich interpretieren, es erforderlich ist, und dass es muss an erster Stelle stehen.

Er sagt auch, es aus den folgenden Komponenten in dieser Reihenfolge bestehen müssen:

  1. Eine Zeichenfolge, die eine ASCII-Groß- und Kleinschreibung Übereinstimmung für die Zeichenfolge <!DOCTYPE ist.
  2. Ein oder mehrere Leerzeichen.
  3. Eine Zeichenfolge, die eine ASCII-Groß- und Kleinschreibung Übereinstimmung für die Zeichenfolge html ist.
  4. Optional kann ein DOCTYPE Legacy-String oder ein veralteter erlaubt DOCTYPE Zeichenfolge (unten definiert).
  5. Keine oder mehr Leerzeichen.
  6. A > (U + 003E) Charakter.

Ja, der Doctype muss als erste in dem Dokument sein (außer Kommentaren). Sie sollten das Einfügen Skripte vor dem Doctype vermeiden; konforme Parser sind nicht zu akzeptieren, dass erforderlich. (Sie sollten Skripte akzeptieren beigefügten nach der Rest des Dokuments, wenn das eine Alternative.)

Von der HTML-5-Spezifikation:

  

8.1 Schreiben von HTML-Dokumenten

     

Dieser Abschnitt gilt nur für Dokumente, Authoring-Tools und Markup> Generatoren. Insbesondere gilt es nicht zu Konformität Kontrolleure; > Konformität Kontrolleure müssen die Anforderungen im nächsten Abschnitt verwenden> ( „HTML-Dokumente parsen“).

     

Dokumente aus den folgenden Teilen, in der angegebenen Reihenfolge bestehen müssen:

     
      
  1. Optional kann ein einzelner "BOM" (U + FEFF) Charakter.
  2.   
  3. Eine beliebige Anzahl von Kommentaren und Leerzeichen.
  4.   
  5. A DOCTYPE.
  6.   
  7. Eine beliebige Anzahl von Kommentaren und Leerzeichen.
  8.   
  9. Das Stammelement in Form eines HTML-Elements.
  10.   
  11. Eine beliebige Anzahl von Kommentaren und Leerzeichen.
  12.   
  13. Die verschiedenen Arten von Inhalten oben erwähnt werden in den nächsten Abschnitten beschrieben.
  14.   

Von HTML 4.01 Spezifikation:

  

7 Die globale Struktur eines HTML-Dokument

     

Ein HTML 4 Dokument besteht aus drei Teilen:

     
      
  1. eine Zeile mit HTML-Versionsinformationen,
  2.   
  3. ein deklarativer Kopfabschnitt (durch das Kopfelement getrennt),
  4.   
  5. ein Körper, der das Dokument des tatsächlichen Inhalt enthält. Der Körper kann durch das BODY-Element oder das FRAMESET-Element realisiert werden.
  6.   
     

[...]

     

Leerraum (Leerzeichen, Zeilenumbrüche, Tabulatoren und Kommentare) vor oder nach jedem Abschnitt angezeigt werden.

     

[...]

     

Ein gültiges HTML-Dokument erklärt, welche Version von HTML wird im Dokument verwendet. Die Dokumenttypdeklaration Namen der Dokumenttyp-Definition (DTD) im Einsatz für das Dokument (siehe [ISO8879]).

Es ist kein Tag, aber yup. Vor allem, weil das der einzige Weg ist, die Internet Explorer (pre-Version 8, glaube ich) in Standardmodus.

bekommen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top