Gibt es irgendwelche Browserprobleme mit immer leeren leeren Tags in HTML. So kann beispielsweise ein leeres Kopf-Tag wie folgt geschrieben werden:
%Vor%kann aber auch so geschrieben werden
%Vor%Wird der zweite Fall in irgendeinem Szenario Probleme verursachen?
Danke
Sie sollten nicht minimiertes Formular für Kopf in XHTML verwenden.
Über leere Elemente:
Gegeben eine leere Instanz eines Elements wessen Inhaltsmodell nicht LEER ist (z. B. Beispiel, ein leerer Titel oder Absatz) Verwenden Sie nicht das minimierte Formular (z. Verwenden Sie
<p> </p>
und nicht<p />
).
Mit anderen Worten, der Absatz sollte immer in XHTML geschlossen sein, in HTML könnten Sie nur mit dem öffnenden Tag gehen. Aber wenn das Element Inhalt haben soll, sollte es richtig geöffnet und geschlossen werden.
Zum Beispiel hat Zeilenumbruch das leere Inhaltsmodell und kann als <br />
geschrieben werden (das gleiche gilt für <hr />
), aber nicht <div />
.
Selbstschließende <script>
-Tags können einige Browser sehr schlecht durcheinander bringen. Ich erinnere mich, dass meine ganze Seite im IE in Luft aufging, nachdem ich ein Skript-Tag selbst geschlossen hatte - alles nachdem es als Skript gelesen wurde.
Angenommen, Sie bedienen Ihr XHTML als XML, nein. <head></head>
ist vollständig entspricht <head />
. In der Tat wird ein XML-Parser Ihnen nicht einmal sagen, welche Sie haben.
(Es gibt jedoch ein Problem, dass das <head>
-Tag ein <title>
enthalten muss.)
Selbstschließende Tags sind in HTML nicht vorhanden. % Co_de% wird immer ignoriert, dh /
und <foo/>
sind äquivalent. Für Elemente wie <foo>
ist das in Ordnung, weil du br
willst. % Co_de% bedeutet jedoch dasselbe wie <br>
, was ein Problem ist (wie in anderen Antworten erwähnt). <script src="..." />
ist weniger ein Problem, weil das <script src="...">
end-Tag sowieso optional ist.
In XML hingegen funktionieren selbstschließende Tags, was Sie wollen. Allerdings verwenden Sie wahrscheinlich nicht XML , selbst wenn Sie einen XHTML-Doctype haben. Wenn Sie Ihre Dokumente nicht mit einem <head/>
, </head>
oder text/xml
MIME-Typ (oder einem anderen XML MIME-Typ) senden, insbesondere wenn Sie sie als application/xml
senden, werden sie nicht als XML behandelt.
Nicht, dass ich mir dessen bewusst bin. Ein Nachteil, der mich in der Vergangenheit gebissen hat, ist das Schließen meines Skript-Tags: <script type="text/javascript" src="somefile.js" />
Dies führt zu einigen interessanten Fehlern.
Im Allgemeinen kann ein leeres Element als selbst schließendes Tag oder als öffnendes und schließendes Tag geschrieben werden.
Die HTML4-DTD gibt jedoch an, dass der HEAD des Dokuments ein TITLE-Element enthalten muss.
"Jedes HTML-Dokument muss ein TITLE-Element in der HEAD-Sektion haben."
Ich glaube, einige ältere Browser hatten Probleme mit dem fehlenden Whitespace - insbesondere
<head/>
wird als "head /" -Tag interpretiert, während <head />
als "head" -Tag mit einem leeren Attribut "/" interpretiert wird, das ignoriert wird.
Dies betrifft nur einige Browser, AFAIK. Entweder ist XHTML gültig, aber ältere HTML-Browser können Probleme haben.
Dies ist tatsächlich in den XHTML-Richtlinien als C.2
dokumentiert Selbst wenn nur Browserprobleme berücksichtigt werden (d. h. die Gültigkeit nicht berücksichtigt wird) und die Frage auf den Wert head
beschränkt wird, lautet die Antwort immer noch ja.
Vergleichen
%Vor%gegen
%Vor%diente als Text / HTML für jede Version von IE.
Does this display?
wird nur im letzten Beispiel angezeigt.