Einige Webseiten werden nach Standards erstellt, aber es gibt auch viele, die es nicht tun. Selbst wenn Sie keine Webseiten erstellen können, die den Standards folgen, möchten Sie, dass der Browser diese Seiten entsprechend den Standards korrekt anzeigt. Derzeit ist eine große Anzahl von Webseiten mit vielen nicht standardmäßigen Code gefüllt und funktioniert immer noch ordnungsgemäß. Tatsächlich werden die meisten Code für ältere Browser in neueren Browsern korrekt angezeigt (obwohl es möglicherweise Unterschiede in der Art und Weise gibt). Was ist der Grund dafür? In der Tat werden die neuesten Standards ausschließlich die Überlebensgrundlage dieser Seiten vollständig untergraben. Dies ist sicherlich inakzeptabel für jeden Browser, der etwas bewirken möchte.
Browser -Rendering -Modus
Zu den modernen Browsern gehören verschiedene Rendering -Modi mit dem Ziel, beide Webseiten zu unterstützen, die Standards und Webseiten für ältere Browser entsprechen. Unter ihnen wird der Standardmodus (dh strikter Präsentationsmodus) verwendet, um Webseiten zu präsentieren, die den neuesten Standards folgen, während der Quirks -Modus (dh losen Präsentationsmodus oder Kompatibilitätsmodus) verwendet wird, um Webseiten für herkömmliche Browser vorzulegen. Beachten Sie auch, dass Mozilla/Netscape 6 einen fast Standardmodus für Webseiten für eine ältere Version des Standards hinzugefügt hat.
Was ist DocType Switch?
Die oben auf der Webseite platzierte DocType -Erklärung ist der Schlüssel, um den Browser in den richtigen Rendering -Modus zu bringen. Der Browser wechselt automatisch in den entsprechenden Rendering -Modus, um den durch die docType -Deklaration angegebenen Dokumenttyp korrekt anzuzeigen.
Theoretisch sollte dies ein sehr intuitiver Schalter sein. Wenn docType darauf hinweist, dass es sich bei der aktuellen Webseite um ein Dokument handelt, das dem Standard entspricht (dh HTML 4+ oder XHTML 1+), wechselt der Browser in den Standardmodus. Wenn der docType nicht angegeben ist oder HTML 3.2 und ältere Versionen angegeben werden, wechselt der Browser in den Quirks -Modus. Auf diese Weise kann der Browser die Dokumente anzeigen, die den Standards korrekt folgen, ohne die altmodischen Webseiten vollständig aufzugeben, die nicht den Standards entsprechen.
DOCTYPE -Schaltproblem
Das DOCTYPE -Schalten ist jedoch eine unvollständige Lösung. Selbst wenn Sie eine DocType -Erklärung in Ihrem Webdokument verwenden, nimmt der Browser möglicherweise nicht den Rendering -Modus, den Sie auf der Webseite anzeigen möchten. Es gibt viele Gründe, einschließlich des docType der falschen Formular und unterschiedliche Anfänge von <xml Version = 1.0 coding = utf-8?>), Die die XHTML-Webseite enthält. IE, Opera und ältere Versionen von Safari möchten jedoch alle, dass die erste Zeile des Dokuments die DocType -Erklärung ist. Wenn also noch etwas vor es gibt (einschließlich XML -Prolog), wird der DocType nicht erkannt. Daher wird die Existenz von XML Prolog IE, Oper und Safari in den Mackenmodus bringen. XML Prolog ist nicht erforderlich, sodass Sie es auf der XHTML -Webseite sicher weglassen können. HINWEIS: Stellen Sie sicher, dass Sie ein Charset-Attribut in das HTTP-EQUIV-Meta-Tag aufnehmen, um das fehlende Codierungsattribut im XML-Prolog auszugleichen.
Fehlende URL oder relative URL:
Fügen Sie in der vollständigen DOCType -Erklärung die URL der entsprechenden Datei der entsprechenden Dokumenttypdefinition (DTD) hinzu. Wenn die URL verloren geht oder wenn sie angegeben ist, werden die meisten Browser einen relativen Pfad (anstelle einer vollständig qualifizierten Internetadresse) eingeben, unabhängig vom Modus, der in der DocType -Erklärung angegeben ist.
DocType der falschen Form:
Der Browser ist sehr empfindlich gegenüber Form und Format der DocType -Erklärung, und wenn ein falsches Formular für docType nicht erkannt werden kann, zwingt er in den Mackenmodus (aus diesem Grund empfehlen wir das Kopieren und Einfügen eines bekannten korrekten docType in das Dokument, anstatt ihn persönlich zu tippen). Ein häufiger Grund für den Formular Fehler docType ist, dass ein Raum zwischen dem ersten Teil von docType und der URL fehlt. Kollabieren Sie ein Dokument, das in zwei Zeilen in eine einzelne Linie eingeteilt ist, und dieser Raum wird oft verloren gehen.
Die Übergangsfrist docType:
Wenn ein Browser den Dokument der Übergangszeitraum behandelt, hat es höchstwahrscheinlich inkonsistente Probleme. IE und Opera verwenden Standards -Modus; Netscape 6 und ältere Versionen von Safari verwenden den Quirks -Modus; Netscape 7, Mozilla 1 und neuere Versionen von Safari verwenden den fast Standardmodus von Netscape, was eine bessere fehlertolerante Version des Standardmodus ist.
Unbekannter DocType:
Es gibt auch Inkonsistenz, wenn der Browser unerkannte Doctypes behandelt. IE und Opera werden den Standardmodus eingeben. Mit anderen Worten, es wird davon ausgegangen, dass unerkannter DocType ein neuer Standard ist, der nicht in den Browser integriert wurde. Im Gegenteil, Netscape 6 wechselt bei der Begegnung bei nicht anerkannten DocTypes in den Quirks -Modus.
Das DOCTYPE -Switching kann ein effektives Mittel sein, damit der Browser den korrekten Rendering -Modus eingeben und die Webseite korrekt angezeigt hat, vorausgesetzt, Sie bemerken, dass Inkonsistenzen in verschiedenen Browsern festgestellt werden und aktiv verschiedene Probleme vermeiden können.
2. Verwenden Sie die richtige DocType -DeklarationWir können dies beim Erstellen von Seiten ignorieren (einschließlich mir, ich bin normalerweise faul, nicht den Browser -Standard zu schreiben und zu verwenden). Mit der Ankunft der aktuellen Begeisterung für die Standardisierung der Webseiten -Codierung müssen alle dieses Detail verstehen, was nützlich sein wird. Wie das Sprichwort sagt, gibt es keine Bestellung ohne Regeln.
Während die meisten Webdokumente an der Spitze von DocType -Erklärungen verfügen, achten viele Menschen nicht darauf. Es ist eine von vielen Details, die durch Webautorierungssoftware schlampig sind, wenn Sie ein neues Dokument erstellen. Während docType von vielen übersehen wird, ist es ein notwendiges Element in jedem Webdokument, das den Standards folgt. DocType wirkt sich auf die Codeüberprüfung aus und stellt fest, wie der Browser Ihre Webdokumentation letztendlich anzeigt.
Die Rolle von docType
In der DOCType -Anweisung wird darauf hingewiesen, welche Regelsätze vom Leser verwendet werden sollten, um die Tags im Dokument zu interpretieren. Im Fall von Webdokumenten ist das Leseprogramm normalerweise ein Programm wie ein Browser oder ein Verifizierungsgerät, und die Regeln sind die von W3C veröffentlichten Regeln in einer Dokumenttypdefinition (DTD).
Jede DTD enthält eine Reihe von Tags, Attributen und Eigenschaften, die zum Markieren des Inhalts eines Webdokuments verwendet werden. und enthält auch Regeln, die angeben, welche Tags angezeigt werden können, in welchen anderen Tags. Jeder Web-Sugge-Standard (z. B. HTML 4 Frameset und XHTML 1.0 Transitional) hat einen eigenen DTD. Wenn die Tags im Dokument nicht der durch die docType -Deklaration angegebenen DTD folgen, wird das Dokument möglicherweise nicht korrekt im Browser angezeigt, zusätzlich, um keine Codeüberprüfung zu übergeben. Der Browser ist toleranter als das Überprüfungsgerät für das Problem inkonsistenter Aufschläge. Falsche docType -Erklärungen führen jedoch häufig dazu, dass Webseiten falsch angezeigt werden oder dass sie überhaupt nicht angezeigt werden.
Wählen Sie den richtigen docType aus
Um die korrekte DocType -Erklärung zu erhalten, besteht der Schlüssel darin, die DTD den Standards zu entsprechen, denen das Dokument folgt. Unter der Annahme, dass das Dokument dem strengen Standard von XHTML 1.0 folgt, sollte sich die DocType -Erklärung des Dokuments auf die entsprechende DTD beziehen. Andererseits ist es unangemessen, ob die DocType-Deklaration XHTML DTD angibt, das Dokument jedoch HTML-Tags im alten Stil enthält. In ähnlicher Weise ist es auch unangemessen, wenn die DocType -Deklaration HTML DTD angibt, das Dokument jedoch XHTML 1.0 -Strict -Tags enthält.
Manchmal können Sie überhaupt keine DocType -Erklärung verwenden. Wenn keine gültige DocType-Deklaration angegeben ist, verwenden die meisten Browser eine integrierte Standard-DTD. In diesem Fall wird der Browser das integrierte DTD verwendet, um das von Ihnen angegebene Tag anzuzeigen. Für einige vorübergehende, hastige Dokumente (es gibt viele von ihnen) können Sie tatsächlich in Betracht ziehen, die DOCTYPE -Erklärung wegzulassen und die Standardanzeige des Browsers zu akzeptieren.
Es ist durchaus möglich, eine DocType -Erklärung von Grund auf neu zu schreiben und auf eine DTD Ihrer Wahl hinweisen zu lassen. Da die meisten Webdokumente jedoch einen international anerkannten Webstandard befolgen müssen, der von W3C veröffentlicht wurde, enthalten diese Dokumente normalerweise eine der folgenden StandarddocType -Deklarationen:
Html 2: <! DocType html public -// ietf // dtd html 2.0 // en>
Html 3.2: <! DocType html public -// w3c // dtd html 3.2 endgültig // en>
Html 4.01 streng: <! DocType html public -// w3c // dtd html 4.01 // en http://www.w3.org/tr/html4/strict.dtd>
HTML 4.01 Transitional: <! DocType html public -// w3c // dtd html 4.01 transitional // en http://www.w3.org/tr/html4/loose.dtd>
HTML 4.01 Frameset: <! DocType html public -// w3c // dtd html 4.01 Frameset // en http://www.w3.org/tr/html4/frameset.dtd>
Xhtml 1.0 streng: <! DocType html public -// w3c // dtd xhtml 1.0 strict // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>
XHTML 1.0 Übergang: <! DocType html public -// w3c // dtd xhtml 1.0 transitional // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtdd>
Xhtml 1.0 Frameset: <! DocType html public -// w3c // dtd xhtml 1.0 rframeset // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-frameset.dtd>
Xhtml 1.1: <! DocType html public -// w3c // dtd xhtml 1.1 // en http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd>
XHTML 1.1 plus MathML plus SVG: <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd>
Zusätzlich zur oben aufgeführten DOCType -Erklärung verwenden einige Dokumente mit besonderen Anforderungen mehrere andere Erklärungen.
Die DocType -Deklaration ist normalerweise die erste Zeile des Dokuments vor dem <html> -Tag und anderen Dokumentinhalten. Beachten Sie, dass im XHTML-Dokument eine XML-Verarbeitungsanweisung (auch als XML-Prolog bezeichnet) gelegentlich vor dem DocType erscheint: <? XML Version = 1.0 codieren = utf-8?>
Um sicherzustellen, dass die Webseite korrekt angezeigt wird und die Überprüfung reibungslos überträgt, ist die Verwendung des richtigen DocType der Schlüssel. DocTypes, die entgegengesetzt, falsch oder falsch in Form sind, sind die Schuldigen einer großen Anzahl von Problemen.
Erstellen Sie beim Entwerfen einer Webseite mit DW eine neue Datei und sehen Sie, dass an der Vorderseite des Code immer etwas unten vorhanden ist.
<! DocType html public -// w3c // dtd html 4.01 transitional // en http://www.w3.org/tr/html4/loose.dtd> Dies ist DW, das automatisch DTD -Informationen zur Webseitenseite hinzufügt, die gelöscht werden können. Nach dem Löschen verwendet der Browser die Standard -DTD.
3. Welche Art von DocType zu wählen
Wenn Sie anfangen, eine Website zu erstellen, die den Standards entspricht, erklären Sie als erstes einen DocType, der Ihren Anforderungen entspricht.
Überprüfen Sie den ursprünglichen Code dieser Seite und Sie können sehen, dass die erste Zeile: <! DocType html public -// w3c // dtd xhtml 1.0 transitional // en http://www.w.w3.org/tr/xhtml1/dtd/xhtml1-transsitional.dtd> lautet.
Öffnen Sie einige Websites, die den Standards entsprechen, z. Der Code für andere Websites, die den Standards (wie K10K.NET) entsprechen, lautet wie folgt:
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Frameset//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd>!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd> br>. Der vollständige Code lautet wie folgt:
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//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-frameset.dtd>
Welche Art von DocType sollten wir wählen?
Die ideale Situation ist natürlich eine strenge DTD, aber für die meisten von US -Designern, die in Web -Standards neu sind, ist der Übergang DTD (XHTML 1.0 Transitional) derzeit eine ideale Wahl (einschließlich dieser Website, die auch Transitional DTD verwendet). Da wir mit dieser DTD auch die Identität, Elemente und Attribute der Präsentationsschicht verwenden können, ist es auch einfacher, die W3C -Codeüberprüfung zu übergeben. HINWEIS: Das Logo und die Attribute der oben genannten Präsentationsebene beziehen sich auf die Tags, die nur zur Steuerung der Leistung verwendet werden, z. B. Tabellen für die Typensetzung, Hintergrundmarkierungen usw. In XHTML wird die Identität verwendet, um Strukturen darzustellen und keine Ausdrücke zu implementieren. Unser Übergang besteht darin, letztendlich Daten und Darstellungen zu trennen.
Zum Beispiel: Ein Nacktmodell ändert die Kleidung. Modelle sind wie Daten, und Kleidung manifestiert sich in Form, und Modelle und Kleidung werden getrennt, sodass Sie nach Belieben die Kleidung wechseln können. Es stellt sich heraus, dass in HTML4 Daten und Leistung zusammengemischt werden und es sehr schwierig ist, die Expressionsform gleichzeitig zu ändern. Haha, es ist ein bisschen abstrakt und wir müssen dieses Konzept während des Bewerbungsprozesses nach und nach verstehen.
Wieder auffüllen
DocType -Erklärungen müssen oben in jedem XHTML -Dokument vor allen Code und Identitäten platziert werden.
4. So definiert der Beamte docType html public! DocType
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gibt die Dokumenttypdefinition (DTD) an, die das HTML -Dokument folgt.
Neu in Microsoft? Internet Explorer 6. Sie können diese Anweisung verwenden, um den Internet Explorer 6 und später in den Standardkompatibilitätsmodus zu wechseln.
Grammatik
HTML Top-Level-Element-Verfügbarkeit Registrierung // Organisation // Typ-Tags // Definition Sprach-URL
Mögliche Werte
Element der obersten Ebene: Gibt den in DTD deklarierten Elementtyp der obersten Ebene an. Dies entspricht dem deklarierten SGML -Dokumenttyp. HTML Standard. Html.
Verfügbarkeit: Geben Sie an, ob die offizielle öffentliche Kennung (FPI) öffentlich zugänglich ist. Öffentliche Ausfall. Öffentlich zugängliches Objekt. Systemsystemressourcen wie lokale Dateien oder URLs.
Registrierung: Geben Sie an, ob die Organisation von der Internationalen Organisation für Standardisierung (ISO) registriert ist. + Standard. Organisationsname registriert. - Organisationsname nicht registriert. Die Internet Engineering Task Force (IETF) und die World Wide Web Association (W3C) sind keine registrierten ISO -Organisationen.
Organisation: Gibt den Namen der Gruppe oder Organisation an, die die Erstellung und Wartung des DTD angibt, auf das die DecType -Erklärung, nämlich Ownoderid, verwiesen wird. Ietf ietf. W3C W3C.
Typ: Gibt die öffentliche Textklasse an, dh die Art des verwiesenen Objekts. DTD Standard. DTD.
Tag: Gibt eine öffentliche Textbeschreibung an, dh einen eindeutigen beschreibenden Namen für den zitierten öffentlichen Text. Die Versionsnummer kann später aufgenommen werden. HTML Standard. Html.
Definition: Geben Sie die Definition des Dokumenttyps an. Frameset Frameset -Dokumentation. Strenge schließt alle repräsentativen Attribute und Elemente aus, die W3C -Experten ausführen möchten, da die Stilblätter bereits perfekt sind. Der Übergang enthält alle Inhalte mit Ausnahme des Frameset -Elements.
Sprache: Gibt eine öffentliche Textsprache an, dh ein natürliches Sprachcodierungssystem, das zum Erstellen des referenzierten Objekts verwendet wird. Die Sprachdefinition wurde als ISO 639 Sprachcode (Kapital zwei Buchstaben) geschrieben. EN Standard. Englisch.
URL: Gibt den Ort des referenzierten Objekts an.
Kommentare
Diese Erklärung muss am Anfang des Dokuments vor dem HTML -Tag erscheinen.
! DocType -Element muss das Tag nicht schließen.
Dieses Element ist in HTML für Microsoft verfügbar? Internet Explorer 3.0.
Sie können diese Deklaration verwenden, um in den strengen Standardkompatibilitätsmodus im Internet Explorer 6 und später in den strengen Modus zu wechseln. Um diesen Switch einzuschalten, geben Sie die Erklärung für docType ganz oben in Ihrem Dokument an, wobei ein rechtliches Tag in der Erklärung angegeben wird, und in einigen Fällen sind auch eine Definition und/oder URL erforderlich.
Hinweis Im Standardkompatibilitätsmodus kann die Kompatibilität mit anderen Versionen von Internet Explorer nicht garantiert werden. Wenn der Standardkompatibilitätsmodus eingeschaltet ist, kann sich das Rendering -Verhalten des Dokuments von der einer zukünftigen Version von Internet Explorer unterscheiden. Wenn der Inhalt ursprünglich behoben ist (z. B. auf einer CD verbrannt), sollte dieser Modus nicht verwendet werden.
Beispiel
Das folgende Beispiel zeigt, wie die Erklärungen von DOCType verwendet werden, geben die DTD an, der das Dokument entspricht, und wechseln Sie den Internet Explorer 6 und später in den Standardkompatibilitätsmodus. Die Erklärungen in den folgenden Beispielen geben die Einhaltung von HTML 4.0 DTD an. Die zweite Deklaration gibt streng an. Die erste Erklärung ist nicht angegeben. Beide Aussagen wechseln den Internet Explorer 6 und später in den Standardkompatibilitätsmodus.
<! DocType html public -// w3c // dtd html 4.0 // en>
<! DocType html public -// w3c // dtd html 4.0 strict // en>
Die Erklärungen in den folgenden Beispielen geben die Einhaltung der DTD -Einhaltung von TransitionalHTML 4.0 an. Die zweite Deklaration gibt die URL von DTD an. Die erste Erklärung ist nicht angegeben. Die zweite Anweisung wechselt den Internet Explorer 6 und später in den Standardkompatibilitätsmodus. Die erste Aussage wird nicht.
<! DocType html public -// w3c // dtd html 4.0 transitional // en>
<! DocType html public -// w3c // dtd html 4.0 transitional // en
http://www.w3.org/tr/html4/loose.dtd>