Frage

Es scheint, dass HTML 5 (teilweise) von Firefox 3.1 und anderen Browsern unterstützt wird. Es wird Unterstützung für Video und Audio als Tags hinzugefügt. Dies sind jedoch neue Tags, die XHTML 1.0 Transitional nicht erkennt. Was soll das Verhalten sein, wenn ich in einer zukünftigen Version von Firefox ein neues HTML 5 -Tag verwende, aber die DTD für XHTML verwende? Und was ist, wenn ich HTML 5 Markup mit XHTML 1.0 trans mische?

Das wird verwirrend. Warum haben sie diese Tags nicht einfach zu XHTML hinzugefügt? Wie unterstützen wir sowohl XHTML als auch HTML 5?

Video auf HTML 5: http://www.youtube.com/watch?v=xixdjof7xxq

War es hilfreich?

Lösung

Im Allgemeinen ist HTML SGML und XHTML wird in XML ausgedrückt. Aus diesem Grund ist das Erstellen von XHTML mit mehr Einschränkungen (in Form von Markup) verbunden als HTML. (SGML-basiert gegen XML-basierte HTML)

Wie erwähnt Wikipedia, HTML 5 hat auch eine XHTML -Variante (xhtml 5).

Faustregel: Sie sollten immer gültiges Markup verwenden. Das bedeutet auch, dass Sie das erwähnte nicht verwenden sollten <video> oder <audio> Tags in xhtml 1.0 transsitional, da diese kein Element dieser Spezifikation sind. Wenn du Wirklich brauchen Um diese Tags zu verwenden (die ich sehr bezweifle), sollten Sie sicherstellen, dass Sie die HTML 5/XHTML 5 DTD verwenden, um anzugeben, dass sich Ihr Dokument in diesem DocType befindet.

Unter Verwendung von HTML 5 oder XHTML 5 im angegebenen Zustand der Implementierung (AFAIK, der Standard ist nicht einmal festgelegt, aber richtig?) Kann möglicherweise kontraproduktiv sein, da fast alle Benutzer die Website sowieso nicht korrigieren sehen.

Bearbeiten 2013: Aufgrund der jüngsten Diskussionen und da diese akzeptierte Antwort nicht gelöscht werden kann (von mir), möchte ich hinzufügen, dass der Support- und Standardisierungsprozess von HTML5 heutzutage völlig anders ist als als ich diese Antwort vor fünf Jahren geschrieben habe . Da die meisten großen Browser die meisten Teile des HTML5 -Entwurfs unterstützen und da viele Dinge in älteren Browsern mit Polyfills repariert werden können, verwende ich jetzt hauptsächlich HTML5.

Andere Tipps

HTML5 ist so viel einfacher zu schreiben als XHTML 1.0.

  1. Sie müssen das nicht manuell deklarieren "http://www.w3.org/1999/xhtml"Namespace.

  2. Sie müssen keine Typattribute zu Skript- und Stilelementen hinzufügen (sie standardmäßig zu Text/JavaScript und Text/CSS).

  3. Sie müssen keinen langen DocType verwenden, in dem der Browser das meiste davon ignoriert. Sie müssen verwendenu003C!DOCTYPE html> , was leicht zu erinnern ist.

  4. Sie haben keine Wahl, einen DTD -URI in den DocType aufzunehmen oder nicht, und Sie haben keine Wahl zwischen Übergangs- und Strikt. Sie haben nur einen strengen DocType, der den vollständigen Standardmodus aufruft. Auf diese Weise müssen Sie sich keine Sorgen machen, dass Sie sich versehentlich im Nahmodus oder im Maschinenmodus befinden.

  5. Die Charset -Erklärung ist viel einfacher. Es ist nuru003Cmeta charset="utf-8"> .

  6. Wenn Sie es verwirrend finden, Leerelemente als zu schreibenu003Cname> , Sie können verwendenu003Cname/> , falls Sie es wollen.

  7. HTML5 hat einen wirklich guten Validator bei http://validator.nu/. Der Validator ist nicht an eine beschissene DTD gebunden, die nicht alle Regeln ausdrücken kann.

  8. Sie müssen nicht hinzufügen //

  9. Sie können bei Bedarf einbetten.

Wenn Sie HTML5 verwenden, haben Sie nur eine Syntax, die mit saubererem Markup leichter zu lesen ist, der immer den Standardmodus aufruft. Wenn Sie XHTML 1.0 (als Text/HTML dient) verwenden, geben Sie eine Reihe von CRUD an (um gegen einen beschissenen DTD zu validieren), den der Browser automatisch tut.

Mythen und Missverständnisse gibt es in diesem Thread.

  1. XHTML 1.0 ist älter als HTML 5. Es kann kein neues Wortschatz verwenden. In der Tat war das Hauptverkaufsargument, dass es genau das gleiche Wortschatz wie HTML 4.01 verwendet.

  2. Es wird höchstwahrscheinlich kein XHTML 1,2 geben. Und es wird nicht benötigt. XHTML 5 ist die XML -Serialisierung von HTML 5. Identische Vokabular, unterschiedliche Parsingregeln.

  3. HTML wurde in Browsern noch nie als echtes SGML behandelt. Kein Browser hat jemals einen SGML-konformen Parser implementiert. HTML 5 wird diese Tatsache zu einer Regel machen, und die HTML -Serialisierung folgt dem heutigen De -facto -Standard. Man könnte vielleicht sagen, dass es "sgml-ish" ist.

  4. Wie bereits erwähnt, dient der DTD genau einen Zweck in Browsern, und das soll zwischen den Standard -Compliance -Modus und dem Mackenmodus von Standards unterschieden werden. Daher wirkt es sich nur um Styling und Skripten aus. Wenn Sie Rahmen auf einer Seite mit astrict docType verwenden, werden sie einwandfrei rendern. Wie Willu003Cembed> und sogaru003Cmarquee> - Obwohl letzteres ein Gräuel ist und erstere in keinem aktuellen Standard. Es ist jedoch Teil von HTML 5.

  5. Video und Audio können unabhängig von Serialisierung, XML oder HTML verwendet werden. Sie sind Teil von HTML 5 und XHTML 5. Sobald die Parsenstufe über einem Browser ist, hat ein internes DOM des Dokuments aufgebaut. Das DOM wird für alle praktischen Zwecke unabhängig von der Serialisierung gleich sein. Und ja, XHTML, das mit Text/HTML gesendet wurde, ist immer noch normal HTML, unabhängig von docType.

Sie könnten das Problem falsch betrachten, weil die Beziehung zu xhtml 1.x Abschnitt, HTML 5 Zustände:

"Diese Spezifikation soll XHTML 1.0 als normative Definition der XML -Serialisierung des HTML -Vokabulars ersetzen."

Jetzt ist die Sprache umstritten (der XHTML 2 WG hat sie bestritten und das HTML WG versucht, die Unterschiede zu lösen ...), aber dort stehen wir gerade.

Ein paar Notizen:

Denken Sie daran, dass docTypes nur einen Zweck in Browsern erfüllen: Wechseln Sie zwischen Macken, fast Standards und Standardmodus. Daher verwendet <video> und <audio> Arbeitet mit jeder DocType -Erklärung. IMO mit einem xhtml docType ist ziemlich nutzlos, da jede Seite, mit der Sie senden text/html MIME-Typ wird sowieso als (Tag-Soup) HTML analysiert. Ich schlage vor, die html5 docType (<!doctype html>), da es einfacher zu erinnern ist und Sie nicht ohne Grund in der XML -Syntax zwingt.

Warum haben sie diese Tags nicht einfach zu XHTML hinzugefügt?

Sie haben es tatsächlich getan, es gibt eine XML -Serialisierung von HTML 5 (xhtml5). Um dies zu verwenden, müssen Sie Ihre Seiten mit einem XML -MIME -Typ wie z. application/xhtml+xml. Dies wird jedoch (noch) von IE unterstützt.

Was soll das Verhalten sein, wenn ich in einer zukünftigen Version von Firefox ein neues HTML 5 -Tag verwende, aber die DTD für XHTML verwende?

Und was ist, wenn ich HTML 5 Markup mit XHTML 1.0 trans mische?

Wenn Ihr Markup nicht als Teil Ihres gewählten DTD implementiert wird - dann sollte dieses Markup nicht befolgt werden. Browser -Implementierungen sind jedoch nicht immer streng logisch.

Warum haben sie diese Tags nicht einfach zu XHTML hinzugefügt? Wie unterstützen wir sowohl XHTML als auch HTML 5?

XHTML ist nicht besser als HTML, aber es eignet sich besser für einige Anwendungen. Einer der Hauptvorteile von XHTML besteht darin, dass es unter Verwendung von XSLT in verschiedene Formate umgewandelt werden kann. Beispielsweise können Sie XSLT verwenden, um XHTML automatisch in ein RSS -Feed oder ein anderes XML -Format zu verwandeln.

Sie müssen nicht beide Formate unterstützen - die Vorteile/Nachteile für jeden mit den Anforderungen Ihres Projekts abwägen. HTML 5 wird wahrscheinlich seit einiger Zeit nicht Standard sein.

(X) HTML5 ist nur die nächste Version. Sie sollten XHTML1.1 verwenden, bis XHTML5 gut unterstützt ist.

Sie sollten wahrscheinlich nicht das SGML-Profil von HTML5 mit rückwärtser Kompatabilität verwenden. Es erschwert die Dinge für Schaber und kleine Parser.

Dein docType Ich werde dem Browser mitteilen, ob Sie HTML5 oder XHTML verwenden. Sie können nicht einfach ein Tag von einem DocType in ein Dokument eines anderen DocType schieben und erwarten, dass es funktioniert. Ohne einen DocType ist es sowieso alles nur mit einer Tag -Suppe.

Verwenden Sie keine Dinge wie Video-/Audio -Tags, wenn 99% der Personen es nicht in der Lage sind, sie in ihrem Browser richtig anzusehen. Für eines dieser beiden Beispiele würde ich vorschlagen, FLV zu verwenden.

Was das, warum sie es nicht zu XHTML hinzufügen ... zuerst ist 1.0 nicht die neueste Version, 1.1 wurde vor einiger Zeit veröffentlicht.

Schließlich werden die Dinge standardisiert und wir werden diese Art von Tags in beiden Standards sehen, aber vorerst tun Sie einfach, was Sie können, um sicherzustellen, dass die meisten Menschen Ihre Inhalte anzeigen können.

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