2010-10-22 3 views
9

Ich habe eine Reihe von Büchern über DOCTYPE-Deklaration und die drei Varianten gelesen: strict, transitional und frameset.Welche DOCTYPE-Deklaration sollten wir verwenden?

Aber ich bin immer noch nicht in der Lage, ihren Unterschied zu verstehen und bin mir nicht sicher, welche Variation ich verwenden sollte, wenn ich meine Website erstelle. Insbesondere verstehe ich den Unterschied zwischen streng und übergangsweise nicht.

könnten Sie mich bitte beraten?

Antwort

8

Frameset ist für Dokumente, die Framesets definieren (Dokumente ohne Frameset werden dann in die Frames geladen). Frames sind normalerweise eine schlechte Design-Wahl, die mehr Probleme verursachen als sie lösen.

Transitional ist, mehr oder weniger, Strict plus Dinge, die Sie nicht verwenden sollten (vor allem, weil sie durch CSS ersetzt wurden). Es gibt ein paar Ausnahmen, wie zum Beispiel das start Attribut, das einige gute Argumente hat, es zu unterstützen (aber nicht oft nützlich ist).

Strenge ist der Kern von HTML und ist normalerweise die beste Wette.

HTML 4.01 ist die neueste, fertige Version von HTML.

XHTML 1.0 ist HTML 4.01 in XML ausgedrückt. Es funktioniert nicht in Internet Explorer, wenn Sie nicht vorgeben, dass es sich um HTML handelt (was die text/html-Spezifikation zulässt).

XHTML 1.1 ist XHTML 1.0 Strikte plus die Zielattribut und Rubin (nicht die Programmiersprache) sowie einige andere kleinere Verbesserungen. Es gibt keine Spezifikation, die das OK gibt, um XHTML 1.1 als HTML darzustellen.

(Vor fünf Jahren: HTML 5 ist eine Entwurfsspezifikation, Änderungen vorbehalten, und mit vielen der interessanten Bits nicht ohne JavaScript arbeiten sie heute in den meisten Browsern im Einsatz Sicherung Es Werkzeug eine reife Validierung fehlt

..

HTML 4.01 ist in der Regel die beste Wahl, aber XHTML 1.0 ist eine Überlegung wert, wenn Sie eine XML-Toolchain in Ihrem Publishing-System haben, und HTML 5 ist eine Überlegung wert, wenn Sie etwas hinzugefügt haben und das Risiko zu leben Die blitzende Kante ist es wert.

Kurz gesagt: Verwenden Sie HTML 4.01 Strict, es sei denn, Sie wissen, warum Sie etwas anderes verwenden müssen.)

Seit dieser Antwort wurde HTML 5 zu einem Standard mit guter Browser- und Toolchain-Unterstützung. Es ist die Spezifikation, die am besten mit der Funktionsweise von Browsern übereinstimmt. Eine XML-Serialisierung ist verfügbar, wenn Sie XML-Unterstützung benötigen.

Kurz gesagt: Verwenden Sie HTML 5: <!DOCTYPE html>.

+0

Meinst du nicht "XHTML 1.1 ist XHTML 1.0 Strict plus ..."? – Alohci

+0

Whoops, ja ich habe. – Quentin

+0

Es ist ziemlich ungenau zu sagen, dass die interessantesten Teile von HTML5 in den meisten Browsern nicht funktionieren. Es gibt tatsächlich nur einen modernen Browser mit schlechter Unterstützung, und sogar das unterstützt eine Menge davon. Viele HTML5 kodieren nur, wie Browser bereits in der realen Welt funktioniert haben. – Chuck

-1

Erstens, verwenden Sie HTML oder XHTML? Ich würde HTML empfehlen - XHTML ist ein toter Standard. HTML5 ist die Zukunft (obwohl wer weiß, wann die Zukunft wird kommen), so würde ich mit HTML 4 Übergangs- gehen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 

Dies ist die engste häufig unterstützt Doctype HTML5. Sie können wie die > Tag < Menü Funktionen von HTML5 verwenden und es wird noch validate.

+0

Ich würde mit HTML5 Doctype gehen: Kürzen und kompatibel mit jedem Browser. Sie können damit HTML 4 Elemente verwenden und müssen sich nicht um Strict, Transitional oder Frameset kümmern. – Tae

2

Verwenden Sie die HTML5 DOCTYPE:

<!DOCTYPE HTML> 

Alles andere ist alt und kaputt.

HTML5> XHTML> HTML 4

Hinweis: Die DOCTYPE nur dann sinnvoll ist, das Dokument für die Validierung und für die meisten der gängigen Standard-Modus in modernen Browsern auszulösen. Ansonsten ist es wertlos. Sie können also auch die modernste Version (HTML5) verwenden.

+0

... Kinder ... So voreilig. – Isaac

+1

Sehr gute Antwort. Wahrscheinlich das Beste auf der Seite. Die einzige Korrektur ist, dass der "html" -Teil der DOCTYPE-Deklaration ** in Kleinbuchstaben geschrieben sein muss. Eine Diskussion der Auswirkungen auf den Mimi-Typ wäre ebenfalls gerechtfertigt. –