HTML: Optionale schließende Tags einschließen oder ausschließen?
Einige HTML1 - End-tags sind optionald.h.:
</HTML>
</HEAD>
</BODY>
</P>
</DT>
</DD>
</LI>
</OPTION>
</THEAD>
</TH>
</TBODY>
</TR>
</TD>
</TFOOT>
</COLGROUP>
Hinweis: Nicht zu verwechseln mit schließenden tags, die verboten einbezogen werden, d.h.:
</IMG>
</INPUT>
</BR>
</HR>
</FRAME>
</AREA>
</BASE>
</BASEFONT>
</COL>
</ISINDEX>
</LINK>
</META>
</PARAM>
Hinweis: xhtml
unterscheidet sich von HTML. xhtml ist ein xml-form, die benötigt jeder - element durch ein Endtag. Ein closing-tag kann verboten in html, noch zwingend in xhtml
.
Sind die optionalen schließenden tags
- ideal enthaltenaber wir werden Sie akzeptieren, wenn Sie Sie vergessen, oder
- ideal nicht enthalten, aber wir werden Sie akzeptieren, wenn Sie Sie in
In anderen Worten, sollte ich Sie, oder sollte ich nicht gehören Sie?
Den HTML-4.01-Spezifikation spricht über schließende element-tags optionalaber nicht sagen, ob es vorzuziehen, um Sie aufzunehmen, oder vorzuziehen.
Auf der anderen Seite, ein zufälliger Artikel auf DevGuru sagt:
Das Ende-tag optional ist. Es wird jedoch empfohlen, dass Sie aufgenommen werden.
Der Grund warum ich Frage ist, weil Sie nur wissen es ist optional aus Gründen der Kompatibilität; und Sie hätte Sie (zwingend | verboten), wenn Sie haben könnte.
Anders ausgedrückt: Was hat HTML 1, 2, 3 mit Bezug auf diese, nun optional, End-tags. Was bedeutet HTML 5 zu tun? Und was soll ich tun?
Hinweis
Einige Elemente in HTML sind verboten von schließenden tags. Sie können nicht Zustimmen, aber das ist die Spezifikation, und es ist nicht zur Debatte. Ich Frage nach optional schließenden tags, und was die Absicht war.
Fußnoten
1HTML 4.01
InformationsquelleAutor der Frage Ian Boyd | 2010-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die optional sind alle, und Sie sollten semantisch klar, wo Sie enden, ohne dass der end-tag.
E. G. jeder
<li>
impliziert eine</li>
wenn es nicht ein Recht, bevor es.Den verboten end-tags alle wäre sofort gefolgt von deren Ende-tag so, es wäre irgendwie redundant eingeben
<img src="blah" alt="blah"></img>
jeder Zeit.Ich fast immer die optionalen tags (es sei denn ich habe einen sehr guten Grund, nicht zu), denn es verleiht mehr lesbar und aktualisierbar-code.
InformationsquelleAutor der Antwort aslum
Gibt es Fälle, in denen explizite tags helfen, aber manchmal ist es unnötig pedantism.
Beachten Sie, dass die HTML-Spezifikation legt klar und deutlich dar, wenn es gilt weglassen-tags, es ist also nicht immer ein Fehler.
Beispielsweise müssen Sie nie
</body></html>
. Niemand erinnert sich zu setzen<tbody>
explizit (bis zu dem Punkt, dass XHTML machte Ausnahmen).Brauchen Sie nicht
</head><body>
es sei denn, Sie haben DOM-Manipulation-Skripte, die eigentlich Suche<head>
(dann ist es besser, um es zu schließen explizit, da die Regeln für die implizite Ende<head>
könnte Sie überraschen).Verschachtelte Listen sind eigentlich besser dran ohne
</li>
weil es dann schwieriger ist, zu erstellen fehlerhafteul > ul
Baum.Gültig:
Ungültig:
Und Bedenken Sie, dass end-tags werden stillschweigend, ob Sie versuchen, schließen Sie alle Elemente oder nicht. Putting-end-tags werden nicht automatisch Parsen robuster:
geparst werden:
Kann es nur helfen, wenn Sie bei der Validierung der Dokumente.
InformationsquelleAutor der Antwort Kornel
Ich bin hinzufügen einige links hier zu helfen Sie sich mit der Geschichte von HTML, für Sie zu verstehen, die verschiedenen Widersprüche. Dies ist nicht die Antwort auf Ihre Frage, aber Sie werden mehr wissen nach der Lektüre dieser verschiedenen verdaut.
Einige Auszüge aus Tauchen Sie ein In HTML5:
InformationsquelleAutor der Antwort Srikar Doddi
Das ist eine interessante Schlussfolgerung. Meine Lesart ist, dass nur etwa jeder Zeit ein tag kann zuverlässig abgeleitet, der tag ist optional. Das design lässt vermuten, dass das Absicht war, um es schnell und einfach zu schreiben.
Die DTD für HTML 2 ist eingebettet in die RFCwas zusammen mit den original -HTML-DTDoptional auch start-und end-tags ganz über dem Platz.
HTML 3 aufgegeben (Dank der browser-Kriege) und ersetzt mit HTML 3.2 (die entworfen wurde, um zu beschreiben, den dann aktuellen Stand des web).
HTML 5 war darauf ausgerichtet, die "ebnet den cowpaths" von Anfang an.
Ah, nun, das ist subjektiv und umstritten sind 🙂
Einige Leute denken, dass die explizite tags sind besser für die Lesbarkeit und Wartbarkeit aufgrund der Tatsache vor dem Leser die Augen.
Einige Leute denken, dass abgeleitete tags sind besser für die Lesbarkeit und Wartbarkeit aufgrund der nicht überladen den editor.
InformationsquelleAutor der Antwort Quentin
Die Antwort auf diese Frage ist in der W3C Working Draft:
http://www.w3.org/TR/html5/syntax.html#syntax-tag-omission
Es ist eine Frage des Stils. Ich versuche, nie end-tags weglassen, weil es mir hilft zu streng sein und nicht weglassen tags, die nötig sind.
InformationsquelleAutor der Antwort ghoppe
Wenn es überflüssig ist, lassen Sie es aus.
Wenn es einem Zweck dient (auch eine scheinbar Banale Zwecke, wie beschwichtigen Sie Ihre IDE-oder Friedenspolitik mit Ihren Augen), lassen Sie es in.
Es ist selten, in einem gut definierten Spezifikation, um zu sehen, optionale Elemente, die nicht auf das Verhalten. Mit Ausnahme von "Kommentare", natürlich. Aber der HTML-Spezifikation ist weniger ein design-Spezifikation und die eher ein Dokument der Stand der aktuellen großen Implementierungen. Also, wenn ein Element ist in HTML optional, und es scheint keinem Zweck dienen, können wir vermuten, dass Freiwilligkeit ist nur Dokumentation eines Fehlers in bestimmten browser.
Blick auf den HTML-5-Spezifikation RFC Abschnitt oben verlinkten, sehen Sie, dass die optionalen tags sind seltsam verknüpft mit dem Vorhandensein von Kommentaren! Das sollte Ihnen sagen, dass die Autoren nicht tragen design Hüte. Sie sind vielmehr das Spiel der "Dokument der Macken" in großen Implementierungen. So können wir nicht nehmen, die spec zu ernst in diesem Zusammenhang.
So, die Lösung ist: nicht Schwitzen. Nun zu etwas, dass wirklich wichtig ist. 🙂
InformationsquelleAutor der Antwort John
Ich denke, die beste Antwort ist, auch End-tags für bessere Lesbarkeit oder Fehlererkennung. Allerdings, wenn Sie haben viel von den erzeugten HTML-Code (sagen, die Tabellen der Daten), speichern Sie eine erhebliche Bandbreite durch weglassen von optionalen tags.
InformationsquelleAutor der Antwort Gabe
Meine Empfehlung ist, dass Sie auch weglassen, die meisten optionale schließen-tags und die optionalen Attribute, die Sie Weg erhalten können mit. Viele IDEs wird sich beschweren, so dass Sie möglicherweise nicht in der Lage sein, um Weg mit Auslassung einiger von diesen, sondern es ist im Allgemeinen besser für kleinere Dateigröße und weniger Kabelsalat. Wenn Sie code-Generatoren definitiv weglassen end-tags dort, da kann man eine gute Zerkleinerung. In der Regel ist es eigentlich egal, die eine oder andere Weise.
Aber wenn es nicht egal ist dann dementsprechend handeln. Auf einige der jüngsten arbeiten von mir, die ich war in der Lage, um die Größe der meine gerenderten HTML von 1,5 MB auf 800 KB durch den Wegfall der meisten der erzeugten end-und redundante-value-Attribute für die open-tag, wo der text des Elements war der gleiche wie der Wert. Ich habe über 200 tags. Könnte ich implementieren, diese auf eine andere Weise voll und ganz, aber das wäre mehr Arbeit ($$$), so dass dies ermöglicht es mir zu leicht machen, die Seite besser.
Nur aus Neugierde habe ich festgestellt, dass wenn ich entfernt Anführungszeichen um Attribute, die Sie brauchen nicht, ich könnte sparen Sie 20 KB, aber meine IDE (Visual Studio), mag es nicht. Ich war auch überrascht, dass das wirklich lange ID, die ASP.NET generiert Konto für 20% meiner Datei.
Die Idee, dass wir jemals bekommen alle relevanten Bruchteil der HTML-streng gültig fehlgeleitet war in den ersten Platz, so tun Sie, was funktioniert am besten für Sie und Ihre Kunden. Die meisten tools, die ich habe jemals gesehen oder verwendet werden sagen, Sie generieren Sie xhtml -, aber Sie nicht wirklich funktionieren 100%, und es gibt keinen nutzen für die strikte Einhaltung sowieso.
InformationsquelleAutor der Antwort user1777246
Ich persönlich bin ein fan von XHTML und, wie ghoppe, "ich versuche, nie end-tags weglassen, weil es mir hilft zu streng sein und nicht weglassen tags, die nötig sind."
aber
Wenn Sie bewusst mit HTML 4.n, man kann nicht argumentieren, dass Sie es einfacher macht, zu konsumieren, die dokumentieren, wie der Begriff der Wohlgeformtheit im Gegensatz zur Gültigkeit ist eine XML-Konzept, und Sie verlieren diesen Vorteil, wenn Sie verbieten bestimmte schließen-tags. Also, das einzige Problem wird die Gültigkeit... und wenn es noch gültig ist, ohne Sie... Sie können auch speichern Sie die Bandbreite, nicht?
InformationsquelleAutor der Antwort Richard JP Le Guen
Verwendung von end-tags macht Umgang mit Fragmenten einfacher, weil Ihr Verhalten ist nicht abhängig von gleichgeordneten Elemente. Dieser Grund allein sollte überzeugend genug. Hat jemand Umgang mit monolithischen html-Dokumente mehr?
InformationsquelleAutor der Antwort CurtainDog
In einigen geschweifte Klammer Programmiersprachen wie C#, können Sie weglassen der geschweiften Klammern um eine if-Anweisung, wenn es nur zwei Zeilen lang. zum Beispiel...
wenn ([Bedingung])
[code]
aber Sie können nicht dies tun...
wenn ([Bedingung])
[code]
[code]
in der Dritten Zeile wird nicht ein Teil der if-Anweisung. es schadet der Lesbarkeit, und Fehler können leicht eingeführt werden und schwer zu finden.
aus den gleichen Gründen, die ich alle tags schließen. tags wie img-tag noch geschlossen werden müssen, nur eben nicht mit einem separaten schließenden tag.
InformationsquelleAutor der Antwort MiguelR
Wenn Sie schreiben einen HTML-parser, wäre es einfacher zu parsende HTML-Code, der im Lieferumfang enthalten optionale End-tags oder HTML-Code, nicht? Ich denke, das optionale End-tags vorhanden, die es erleichtern würde, als wäre ich nicht zu folgern, wo der schließende tag werden sollte.
Aus diesem Grund habe ich immer gehört das optionale schließen-tags - auf der Theorie, dass meine Seite schneller machen könnte, wie ich es Schaffe weniger Arbeit für den browser HTML-parser.
InformationsquelleAutor der Antwort Joel Mueller
Tun, was Sie fühlen, macht den code besser lesbar und wartbar.
Würde ich persönlich immer geneigt sein, zu schließen
<td>
und<tr>
aber ich würde nie die Mühe mit<li>
.InformationsquelleAutor der Antwort Matthew Wilson
Für verbotene Arten schließen verwenden Sie eine syntax wie:
<img />
Mit der/>
zu schließen, den tag, die akzeptiert wird im xml -InformationsquelleAutor der Antwort Dani