Ich habe häufig ein Leerzeichen vor dem abschließenden Schrägstrich in XML- und HTML-Tags gesehen. Der XHTML-Zeilenumbruch ist wahrscheinlich das kanonische Beispiel:
<br />
anstatt:
<br/>
Der Raum scheint überflüssig. Tatsächlich halte ich es für überflüssig.
Was ist der Grund, diesen Raum zu schreiben?
Ich habe gelesen, dass der Speicherplatz einige "Abwärtskompatibilitätsprobleme" löst. Welche Abwärtskompatibilitätsprobleme? Sind diese Probleme immer noch relevant oder fügen wir noch zusätzliche Leerzeichen hinzu, um beispielsweise die IE3-Kompatibilität zu gewährleisten? Gibt es eine Spezifikation mit der endgültigen Antwort darauf?
Wenn nicht Abwärtskompatibilität, ist es dann ein Lesbarkeitsproblem? Ähnlich wie bei der Debatte um die Great Open Curly Brace?
void it_goes_up_here() {
int no_you_fool_it_goes_down_there()
{
Ich kann sicherlich unterschiedliche stilistische Meinungen respektieren, daher bin ich froh zu erfahren, dass das Schreiben des Raums einfach Geschmackssache ist.
quelle
Antworten:
Die Antwort lautet: Personen möchten Anhang C der XHTML1.0-Spezifikation einhalten . Was Sie nur tun müssen, wenn Sie XHTML als Text / HTML bereitstellen . Was die meisten Leute tun, weil der echte MIME-Typ von XHTML (application / html + xml) in Internet Explorer nicht funktioniert.
Kein aktueller Browser kümmert sich um den Speicherplatz. Browser sind sehr tolerant gegenüber diesen Dingen.
Früher war der Speicherplatz erforderlich, um sicherzustellen, dass HTML-Parser den abschließenden Schrägstrich als nicht erkanntes Attribut behandelten.
quelle
Unterstützung der Antwort von Bobince mit einem Screenshot von Netscape 4.80 mit Dokumenten
(oben links, Zeilenumbruch gerendert) und
(unten links, Zeilenumbruch ignoriert).
Posting als Antwort, um das Bild zu zeigen
Tangential bezogen werden : in der Tat ich die Ursache eines solchen Fehlverhaltens von alten Browsern Identifizierung einer langen Antwort hatte (und die daraus resultierende Empfehlung Raum einschließen) in mißverstanden SGML - Spezifikationen, nämlich SGML Null - End - Tag ( NET ) (wo
1<tag/2/3
gleich1<tag>2</tag>3
so1<tag/>2
würde tatsächlich Mittelwert1<tag>>2
), aber Ich war nicht nur nicht in der Lage, einen guten Beweis und eine konkrete Version des Standards zu finden, ich war auch nicht in der Lage, das richtige Verhalten bei der Einhaltung von Standards zu erfassen. So wenige rohe Links als Referenz:(Kann dort derzeit nicht reproduziert werden, unterstützt jedoch Lee Kowalkowskis Aussage über mehrere davon betroffene Browser.)
NET "/>"
quelle
Sie waren nah dran - es ist für Netscape 4.
Es ist interessant, andere Rationalisierungen zu sehen, aber das ist alles, wofür es gedacht war.
quelle
Nein, der Speicherplatz wird nicht benötigt, aber einige ältere Browser müssen diese Tags korrekt rendern. Der richtige Weg, dies zu tun, ist ohne zusätzlichen Speicherplatz, da dies etwas ist, das XHTML von XML geerbt hat.
quelle
In XHTML müssen br-Tags geschlossen sein, aber der Platz ist nicht erforderlich . Es ist eine stilistische Sache. In HTML können br-Tags nicht geschlossen werden, daher sind beide falsch.
quelle
Der Platz macht die Tags nur lesbarer. Ich bin ein großer Befürworter der Formatierung für besser lesbaren Code. Kleinigkeiten wie diese reichen weit. Ohne Leerzeichen fügt sich das schließende Tag in das öffnende Tag ein. Die Verarbeitung dauert nur einen Augenblick länger, da ich den Code schnell lese.
quelle
Was wäre, wenn es da draußen einen sehr faulen HTML-Autor gäbe oder er Angst vor Anführungszeichen hätte? Betrachten Sie Folgendes, wenn Sie sein Roboterseiten-Crawler waren ...
<img src=http://myunquotedurl.com/image.jpg />
gegen
<img src=http://myunquotedurl.com/image.jpg/>
Dies mag klein erscheinen, aber schauen Sie, was es tun kann, wenn der Platz nicht da ist. Der Roboter weiß nicht, ob der Schrägstrich Teil der URL oder Teil des schließenden Tags ist.
quelle
Ich denke, dass der Leerraum eine Möglichkeit ist, die Idee zu verstärken, dass dieses Tag leer ist und sich selbst schließt.
Heute benutze ich den Leerraum nicht mehr, weil ich nie ein Problem ohne Leerraum hatte.
quelle