2016-06-02 24 views
0

An einem gewissen Punkt in dem trüben und düsteren Vergangenheit habe ich viel gelesen und viel Forschung und beschlossen, dass die „beste“ Weg, um ein HTML-Dokument zu beginnen war: IchIst eine XML-Deklaration in einem HTML-Dokument erforderlich?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="EN"> 

Und seitdem Kopieren und einfügen Sie dies an den Anfang jedes HTML-Dokuments, ohne es weiter zu überlegen.

Allerdings ist HTML5 jetzt hier und ich muss anfangen, moderne Praktiken zu folgen, was bedeutet, dass ich diesen veralteten Header durch etwas Neues ersetzen muss.

Offensichtlich wird die zweite Zeile werden:

<!DOCTYPE html> 

Aber was ist die erste Zeile? Die "<? Xml" -Deklaration; Brauche ich es noch? Ehrlich gesagt, von dem, was ich heute gelesen habe, bin ich mir nicht sicher, dass ich je benötigt habe. (Ich bin mir nicht sicher, welche Forschung ich damals getan habe, die mich dazu gebracht hat zu denken, dass ich das tat.)

Und die dritte Zeile? Ich weiß, ich brauche "< html>" aber brauche ich noch etwas, das in dieser Zeile ist?

Gibt es auch etwas, das ich hinzufügen muss? Kann ich einfach mit folgenden Dokumenten beginnen:

<!DOCTYPE html> 
<html> 

Sind diese paar Zeilen die neue Best Practice? Oder sollte ich noch etwas hinzufügen?

Antwort

2

Die XML-Deklaration hat nur in XML-Dokumenten Bedeutung. Dazu gehört XHTML, das in HTML5 kaum mehr als eine XML-Serialisierung des HTML-Standards ist.

Aber HTML selbst ist nicht XML. Daher ist die XML-Deklaration in einem HTML-Dokument bedeutungslos und es gibt keinen Grund, sie einzubinden. Es ist nicht einmal eine Frage der Best Practice.

HTML5 erlaubt die Verwendung bestimmter Holdovers von XHTML, wie das xmlns-Attribut und die selbstschließende Syntax />, um das Portieren von "XHTML" -Dokumenten in HTML5 zu erleichtern. Aber wenn Sie neu anfangen und HTML schreiben (was bei vielleicht 90% der Autoren der Fall ist), sollten sie weggelassen werden. Nur wenn Sie XHTML erstellen, müssen Sie weiterhin den XML-Regeln folgen.

Der Zwei-Liner, den Sie präsentieren, ist der richtige Weg, ein HTML-Dokument zu beginnen, das modernen Standards entspricht. (Der <html> Start-Tag ist optional, aber wenn Sie Google sind dann ist es in Ihrem besten Interesse dass in zu verlassen, und Sie müssen es sowieso, wenn Sie irgendwelche Attribute überhaupt angeben möchten.)

+0

Also ja, können Sie (und müssen) einfach mit beginnen FLX

+0

Sie behaupten, dass „wenn Sie frisch fangen, [dann die xmlns-Attribut] weggelassen werden soll.“ Aber was ist, wenn Sie fange neu an und möchte Namespacing in deinem ([XML-Syntax] (http://w3c.github.io/html/xhtml.html#xhtml)) HTML5-Dokument verwenden? –

+1

@Michael Allan: Dann schreibst du XHTML5, und alle Regeln von XML gelten. Ich habe meiner Antwort einige Klarstellungen hinzugefügt. – BoltClock

1

try looking here

Die XML-Deklaration ist nur erforderlich, wenn die Seite nicht als UTF-8 (oder UTF-16) bereitgestellt wird. Es kann jedoch sinnvoll sein, sie einzuschließen, damit Entwickler, Tester oder Übersetzungsproduktionsmanager die Codierung visuell überprüfen können eines Dokuments durch Betrachten der Quelle. Da ein mehrsprachiges Dokument in UTF-8 sein muss, müssen Sie die XML-Deklaration nicht verwenden und dürfen dies auch nicht. Wenn die Datei andererseits als HTML gelesen werden soll, müssen Sie die Codierung mit einem Meta-Element, der Byte-Reihenfolge-Markierung oder dem HTTP-Header deklarieren.

Da eine Erklärung in einem Meta-Element wird nur von einem HTML-Parser erkannt werden, wenn man den Ansatz mit dem Inhalt verwenden Attribut seiner Wert sollte mit text/html ;. starten