Leerzeichen vor dem schließenden Schrägstrich?

Lesezeit: 5 Minuten

Leerzeichen vor dem schliesenden Schragstrich
Gregor Mattes

Ich habe häufig ein Leerzeichen vor dem schließ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. Eigentlich halte ich es für überflüssig.

Was ist der Grund, diesen Raum zu schreiben?

Ich habe gelesen, dass das Leerzeichen einige “Abwärtskompatibilitätsprobleme” löst. Welche Abwärtskompatibilitätsprobleme? Sind diese Probleme immer noch relevant, oder fügen wir immer 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 Great Open Curly Brace-Debatte?

void it_goes_up_here() {

int no_you_fool_it_goes_down_there()
{

Ich kann durchaus unterschiedliche stilistische Meinungen respektieren, daher freue ich mich zu erfahren, dass das Schreiben des Raums reine Geschmackssache ist.

  • Ich bin so daran gewöhnt, dass
    einfach so viel besser aussieht als

    – mk12

    31. Oktober 09 um 3:36 Uhr

1643907128 904 Leerzeichen vor dem schliesenden Schragstrich
Lee Kowalkowski

Die Antwort ist, dass die Menschen sich daran halten wollen Anhang C der XHTML1.0-Spezifikation. Was Sie nur tun müssen, wenn Sie es sind Bereitstellung von XHTML als Text/HTML. Was die meisten Leute tun, weil der echte MIME-Typ von XHTML (application/html+xml) im Internet Explorer nicht funktioniert.

Kein aktueller Browser kümmert sich um den Platz. Browser sind sehr tolerant gegenüber diesen Dingen.

Das Leerzeichen war früher erforderlich, um sicherzustellen, dass HTML-Parser den abschließenden Schrägstrich als nicht erkanntes Attribut behandelten.

  • Kannst du das “früher” genauer beschreiben? Jahr und/oder Browserversion reichen aus, danke!

    – Greg Mattes

    20. Januar 09 um 20:45 Uhr

  • ich denke, dass w3.org/TR/xhtml1/#C_2 ist ein genauerer Link für diese Antwort. Es scheint also, dass XHTML 1.0 Anhang C2 effektiv veraltet ist und dass das Schreiben des Leerzeichens reine Geschmackssache ist.

    – Greg Mattes

    24. Januar 09 um 21:01 Uhr

  • Entschuldigung, früher bedeutet “ist” – in Bezug darauf, sicherzustellen, dass ein HTML-Parser den abschließenden Schrägstrich als ein nicht erkanntes Attribut behandelt, sind nicht alle HTML-Parser Browser. Ich möchte nicht raten, welche Browser-Version, wenn überhaupt, verschluckt wurde, aber ich kann mich nicht erinnern, dass sich IE4 oder Netscape 4 beschwert haben.

    – Lee Kowalkowski

    16. Februar 09 um 22:13 Uhr

  • eigentlich ist der echte Mime-Typ application/xhtml+xml.

    – mk12

    31. Oktober 09 um 3:34 Uhr

  • @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 sei eigentlich Netscape 3.

    – Lee Kowalkowski

    9. November 12 um 8:56 Uhr

Leerzeichen vor dem schliesenden Schragstrich
meinf

1643907129 287 Leerzeichen vor dem schliesenden Schragstrich und
in HTML”>

Unterstützende Antwort von Bobince mit Screenshot von Netscape 4.80 Dokumente zeigen

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 verwandt: Tatsächlich hatte ich eine lange Antwort, die die Ursache für ein solches Fehlverhalten alter Browser (und die daraus resultierende Empfehlung, Leerzeichen einzufügen) in missverstandenen SGML-Spezifikationen identifizierte, nämlich SGML-Null-End-Tag (NETZ) (wo 1<tag/2/3 gleich 1<tag>2</tag>3 Also 1<tag/>2 würde eigentlich bedeuten 1<tag>>2), aber ich konnte nicht nur keinen guten Beweis und keine konkrete Version des Standards finden, ich war nicht einmal in der Lage, richtiges standardkonformes Verhalten zu erfassen. So wenige rohe Links als Referenz:

(Kann dort jetzt nicht reproduziert werden, unterstützt jedoch die Aussage von Lee Kowalkowski zu mehreren davon betroffenen Browsern.)

Sind diese Probleme immer noch relevant oder fügen wir immer 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.

  • Danke! Können Sie dafür eine Referenz angeben?

    – Greg Mattes

    21. Januar 09 um 15:28 Uhr

  • Hmm, es ist schwierig, so alte Primärquellen zu finden … offizielle W3-Materialien vermeiden es, irgendein UA zu erwähnen, und Diskussionen in den Listen scheinen die Situation als gelesen zu betrachten. Wahrscheinlich gab es noch andere UAs, die den Platz ebenfalls benötigten, aber N4 war das letzte, das Webmastern jahrelang Ärger bereitete.

    – Bobin

    21. Januar 09 um 16:29 Uhr

  • Damit Ihr XHTML-Dokument auch auf Netscape dargestellt wird. Insbesondere war es für Break-Tags und Image-Tags. Primärquelle: Ich habe vor 10 Jahren für IE4- und NS3-Kompatibilität codiert.

    – Philip Busby

    24. Februar 15 um 22:58 Uhr

Nein, das Leerzeichen ist nicht erforderlich, aber einige ältere Browser müssen diese Tags korrekt wiedergeben. Der richtige Weg, dies zu tun, ist ohne das zusätzliche Leerzeichen, da dies etwas ist, das XHTML von XML geerbt hat.

Der Abstand macht die Tags nur besser lesbar. Ich bin ein großer Befürworter der Formatierung für besser lesbaren Code. Solche kleinen Dinge können einen langen Weg zurücklegen. Ohne das Leerzeichen fügt sich das schließende Tag in das öffnende Tag ein. Es dauert nur einen Moment länger, bis ich es verarbeitet habe, da ich den Code schnell lese.

1643907129 78 Leerzeichen vor dem schliesenden Schragstrich
Pesto

In XHTML müssen br-Tags geschlossen werden, aber der Platz ist nicht notwendig. Es ist eine stilistische Sache. In HTML können br-Tags nicht geschlossen werden, also sind beide falsch.

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 verwende ich den weißen Raum nicht mehr, weil ich nie ein Problem ohne weißen Raum hatte.

  • „verstärken“ ist ein passendes Wort für „stark“

    – Hao

    20. Januar 09 um 19:46 Uhr

  • danke, dass du das bemerkt hast. Es ist gut zu sehen, dass wir hier Leute haben, die für die Qualität des Schreibens sorgen.

    – Nicruo

    20. Januar 09 um 19:53 Uhr

.

757730cookie-checkLeerzeichen vor dem schließenden Schrägstrich?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy