tl; dr
Einige weit verbreitete Programme, die HTML generieren, generieren nur öffnende Absatzmarken und keine schließenden, vorausgesetzt, der Browser schließt Absätze ordnungsgemäß.
Auf den ersten Blick scheint mir die Annahme, dass Browser Absätze ordnungsgemäß schließen, nicht korrekt zu sein. Ist meine Interpretation korrekt? Welche Kompromisse sind generell mit dieser Art von Entscheidung verbunden?
Beim Durchsuchen des moinmoin-Quellcodes ist mir folgende Codezeile aufgefallen:
# We only open those tags and let the browser auto-close them:
_auto_closing_tags = set(['p'])
( Quelle )
Nachdem ich den Rest der Implementierung durchgelesen habe, habe ich mich davon überzeugt, dass moinmoin, wenn es HTML-Code für eine seiner Seiten generiert, gegebenenfalls Absatz-Open-Tags korrekt generiert, während gleichzeitig gezielt Folgendes vermieden wird Tags schließen den Absatz (obwohl dies trivial möglich ist).
Für meinen speziellen, eher ungewöhnlichen Anwendungsfall ist dieses Verhalten nicht korrekt. Ich bin versucht, einen Fehlerbericht einzureichen und / oder das Verhalten zu ändern. Es sieht jedoch so aus, als ob diese Designentscheidung sorgfältig getroffen wurde. Ich bin nicht gut genug mit den Feinheiten des HTML-Standards oder den verschiedenen Browser-Implementierungen vertraut, um feststellen zu können, ob dies im Allgemeinen das richtige Verhalten ist, und ich habe das Gefühl, dass mein Instinkt, dieses Verhalten zu korrigieren / zu ändern, dies sein könnte fehlgeleitet.
Entspricht dieser Code einer gültigen Annahme für Browserimplementierungen? Ist der generierte HTML-Code gültig? Welche Kompromisse könnte ich hier allgemein vermissen?
quelle
Antworten:
End-Tags für
p
Elemente waren in HTML optional und nur in XHTML erforderlich. Der HTML5-Entwurf führt jedoch eine Reihe von Bedingungen ein, wenn dasp
End-Tag tatsächlich optional ist:Das einzige Argument, das ich jemals gehört habe, um die End-Tags für
p
Elemente wegzulassen, ist die Dokumentgröße. Es liegt ganz bei Ihnen zu entscheiden, ob dies für Ihr Dokument sinnvoll ist oder nicht. Persönlich neige ich dazu, alle optionalen End-Tags einzuschließen, nur für den Fall, dass ich die Anforderungen nicht erfülle, wenn das End-Tag optional ist.quelle
<li>
Tags verhalten sich die Tags eher wie Aufzählungspunkte.In der W3C-Spezifikation für HTML5 heißt es insbesondere:
Im Grunde hat die Spezifikation viele Möglichkeiten bereitgestellt, mit denen die Komplexität (groß oder klein) des Schließens des Tags vermieden werden kann. Jede konforme Browser-Implementierung müsste diese Ausnahmen berücksichtigen.
quelle