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
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.
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:
Es gibt jedoch immer noch einige kleinere Benutzerprogramme, die Null-End-Tags ordnungsgemäß unterstützen. Einer der bekannteren Benutzeragenten, die dies unterstützen, ist der W3C-Validator.
(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.
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
.
7577300cookie-checkLeerzeichen vor dem schließenden Schrägstrich?yes
Ich bin so daran gewöhnt, dass
einfach so viel besser aussieht als
– mk12
31. Oktober 09 um 3:36 Uhr