Leerzeichen vor dem Schließen des Schrägstrichs?


93

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.


5
Ich bin so daran
gewöhnt,

Antworten:


64

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.


2
Können Sie genauer sagen, was früher war? Jahr und / oder Browserversion reichen aus, danke!
Greg Mattes

5
Ich denke, dass w3.org/TR/xhtml1/#C_2 ein genauerer Link für diese Antwort ist. Es scheint also, dass XHTML 1.0 Anhang C2 praktisch veraltet ist und dass das Schreiben des Leerzeichens nur eine Frage des Geschmacks ist.
Greg Mattes

1
Tut mir leid, früher bedeutet "ist" - um sicherzustellen, dass ein HTML-Parser den abschließenden Schrägstrich als nicht erkanntes Attribut behandelt, sind nicht alle HTML-Parser Browser. Ich möchte nicht raten, welche Browserversion erstickt ist, aber ich kann mich nicht erinnern, dass sich IE4 oder Netscape 4 beschwert haben.
Lee Kowalkowski

3
Eigentlich ist der eigentliche MIME-Typ application / xhtml + xml.
mk12

3
@JanAagaard: Ich weiß nicht, ich würde mich daran erinnern, wenn ja - ich habe mit der Webentwicklung auf IE4 und Netscape 4 begonnen. Diese Antwort, auf die Sie verlinkt haben, hat auch einen Kommentar zu diesem Effekt. Es heißt, es ist tatsächlich Netscape 3.
Lee Kowalkowski

31

Netscape 4.80 zeigt das unterschiedliche Verhalten von <br/> und <br /> in HTML

Unterstützung der Antwort von Bobince mit einem Screenshot von Netscape 4.80 mit Dokumenten

data:text/html,<title>space</title>foo<br />bar

(oben links, Zeilenumbruch gerendert) und

data:text/html,<title>no space</title>foo<br/>bar

(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/3gleich 1<tag>2</tag>3so 1<tag/>2würde tatsächlich Mittelwert 1<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.)


25

Sind diese Probleme immer noch relevant oder fügen wir noch zusätzliche Leerzeichen hinzu, um beispielsweise die IE3-Kompatibilität zu gewährleisten?

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.


2
Vielen Dank! Können Sie hierfür eine Referenz angeben?
Greg Mattes

1
Hmm, es ist schwierig, Primärquellen für dieses alte ... offizielle W3-Material zu finden. Vermeiden Sie es, eine UA zu erwähnen, und die Diskussion in den Listen scheint die Situation als gelesen zu betrachten. Es gab wahrscheinlich andere UAs, die ebenfalls Platz brauchten, aber N4 war der letzte, der Webmastern jahrelang Probleme bereitete.
Bobince

Es war so, dass Ihr XHTML-Dokument auch in Netscape gerendert wurde. Speziell für Break-Tags und Image-Tags. Primärquelle: Ich habe vor 10 Jahren für IE4- und NS3-Kompatibilität programmiert.
Philihp Busby

4

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.


1
Welche älteren Browser speziell? Ich bin daran interessiert zu erfahren, ob es sich um Browser mit erheblichem Marktanteil handelt.
Greg Mattes

Waren nicht. IE5 und älter meistens.
jmucchiello


2

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.


0

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.


12
Nun, aber es sollte trotzdem Anführungszeichen um die URL geben.
Florian Wendelborn

-1

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.


1
"verstärken" ist ein passendes Wort für "stark"
Hao

Danke, dass du das bemerkt hast. Es ist gut zu sehen, dass wir hier Leute haben, die die Qualität des Schreibens sicherstellen.
Nicruo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.