Wir deklarieren docType in HTML hat im Allgemeinen die folgenden Typen:
<! 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 strict // en http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd>
<! 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>
Ja, hier gibt es HTML und XHTML, und es gibt auch Übergang und streng. Wie der Name schon sagt, bedeutet XHTML, dass dieses Dokument im XML -Format geschrieben ist und HTML bedeutet, dass dieses Dokument im HTML -Format geschrieben ist. Übergang bedeutet, dass dieses Dokument die Anforderungen von transitional.dtd oder lose.dtd erfüllt, während strikte dieses Dokument die Anforderungen von strict.dtd erfüllt. Aber in der Tat haben wir oft die folgenden Missverständnisse:
(1) Mein Dokument wird XHTML deklariert, dann muss mein Dokument genau im XML -Format sein.
.
Beide Verständnisse sind sehr direkt, aber sie sind falsch, und wir machen oft solche Fehler.
Erstens wird das Dokument als XHTML und HTML deklariert und hat keine direkte Korrelation mit dem Analyse des Dokuments (d. H. Die Analyse des Browsers des Dokuments). Wie das Dokument des Browser -Parse -Dokuments von dem Format des Servers das Dokument bereitstellt, hängt in der Tat. Im Allgemeinen gibt es zwei Möglichkeiten: Text/HTML und Anwendung/XHTML XML. Nur Dokumente, die in der Anwendung/HTML -XML -Methode angegeben sind, können in XML analysiert werden. Aus den historischen Gründen des Browsers unterstützen jedoch nicht alle Browser -Dokumente für Anwendungen/XHTML XML -Format. Versionen vor IE7 (einschließlich IE7) können dieses Format nicht unterstützen. Wenn IE7 in diesem Format auf ein Dokument stößt, fordert der Benutzer auf, als andere Dateien zu speichern. In Anbetracht der weit verbreiteten Verwendung von IE werden die meisten Dokumente derzeit in Text/HTML bereitgestellt. Dokumente in Text/HTML werden gemäß der Semantik von HTML analysiert. Jeder weiß, dass HTML sehr fehlertolerant ist. Auch wenn das Tag in Ihrem Dokument nicht korrekt geschlossen ist, kann das HTML korrekt angezeigt werden. Wenn Ihr XHTML (in den meisten Fällen) in Text/HTML (in den meisten Fällen) angegeben ist, ist Ihr Dokument nicht im XML -Format analysiert, sodass Ihr Dokument nicht garantieren kann, dass Ihr Dokument ausschließlich mit XML -Spezifikationen übereinstimmt. Tatsächlich schlagen viele Experten vor, dass Sie es als HTML deklarieren sollten, wenn Ihr Dokument nicht in Form von Anwendung/XHTML XML bereitgestellt wird.
Zweitens wird die Art und Weise, wie der Browser Ihr Dokument macht, nicht durch die von Ihnen deklarierende DTD festgelegt. Wenn Sie docType und dtd deklarieren, wird Ihr Dokument im strengen Modus (oder Standardmodus, viele Browser auch nahezu Standardmodus enthalten, und es gibt hier keine Unterscheidung). Für Dokumente ohne docType wird der Mackenmodus zum Rendern verwendet. Daher hat der Rendermodus des Browsers keine direkte Beziehung zu der von Ihnen deklarierten DTD.
Unabhängig davon, ob Sie es als strikt.dtd oder transitional.dtd deklarieren, scheint es keinen Unterschied in den aktuellen Browsern zu geben. Strict.dtd ist viel strenger als transitional.dtd oder lose.dtd, und viele Elemente können in strict.dtd nicht verwendet werden. Aufgrund der Browserkompatibilität kann der Browser Ihr Dokument jedoch bei der Begegnung mit Elementen, die in strict.dtd nicht zulässig sind, auch dann, wenn Sie strict.dtd in docType deklarieren. Ich denke, der Browser berücksichtigt DTD nicht. Zum Beispiel existiert das Tag von Iframe in strict.dtd nicht, aber selbst wenn Ihr docType strict.dtd deklariert und dann das Tag von Iframe verwendet, kann der Browser (einschließlich IE7, IE8, ff3.0, Safari 3.0) Ihr Dokument korrekt anzeigen. Der Browser analysiert Ihr Dokument nicht gemäß der von Ihnen erklärten DTD. Derzeit kann sicherstellen, dass Ihr Dokument strict.dtd oder transitional.dtd entspricht. Es kann nur durch einige Online -Validatoren wie W3C Validator analysiert werden. Der Browser kann Ihnen keine gute Unterstützung bieten. Wenn Sie Ihr Dokument in der Tat nach dem von Ihnen erklarenden DTD schreiben können, ist dies natürlich am besten, so dass Ihr Dokument keine Fehler erzeugt, wenn der Browser in Zukunft strikt an DTD zurückhält.
daher,
(1) Wenn Ihr Dokument in Text/HTML bereitgestellt wird, sollten Sie es als HTML deklarieren. Wenn Sie möchten, dass IE7 richtig angezeigt wird, sollten Sie dies noch mehr tun.
(2) Wenn Ihr Dokument als XHTML deklariert wird, sollten Sie es in Form von Anwendung/HTML XML bereitstellen.
(3) Versuchen Sie, DocType und DTD vor Ihrem Dokument zu deklarieren, um sicherzustellen, dass Sie den Quirks -Modus nicht verwenden, um das Dokument zu rendern.
(4) Wenn Sie DTD deklarieren, müssen Sie Ihr Dokument ausschließlich in Übereinstimmung mit den Anforderungen von DTD schreiben. Vor allem, wenn Sie strict.dtd deklarieren, sollten Sie vorsichtig sein, welche Elemente nicht verwendbar sind.
Hinweis: Im Laufe der Zeit wird die Browser -Unterstützung für HTML und XHTML, strict.dtd und transitional.dtd besser. Wenn Ihr Browser viel höher ist als IE7, IE8, FF 3.0 und Safari 3.0, sollten Sie auf die Anwendbarkeit dieses Artikels achten.