Self-closing Tags?

Das Ergebnis basiert auf 5 Abstimmungen

<br /> 100%
<br> 0%
<br></br> (warum???) 0%

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
<br />

In HTML 5 wird der Slash einfach ignoriert. Das gilt übrigens für alle Elemente, nicht nur für <br>.

Ich setze den Slash trotzdem:

  • Weil der Code einfacher verständlich ist, wenn man an der Syntax erkennen kann, welche Tags self-closing sind und welche nicht
  • Weil der Slash bei React/JSX gesetzt werden muss, und ich eine einheitliche Syntax in html-Dateien und in jsx-Dateien möchte
  • Weil ich die in HTML 5 eingeführten Regeln unsinnig finde – XML ist viel logischer.
Woher ich das weiß:Studium / Ausbildung – Abitur 2016

ChrisCR 
Fragesteller
 18.05.2024, 05:22

Ich bin ebenfalls der Meinung, dass man den XML Standard hätte beibehalten sollen. Deshalb wollte ich hier mal Fragen, wie damit umgegangen wird, dass es laut dem HTML5 Standard theoretisch falsch ist.

0
VeryBestAnswers  18.05.2024, 05:34
@ChrisCR

Es ist nicht falsch. Der Slash darf verwendet werden, er wird aber ignoriert. Sogar bei Elementen, die nicht self-closing sind. Das heißt, du kannst statt

<p>Hallo Welt</p>

auch

<p />Hallo Welt<p>

schreiben. Aber das macht natürlich niemand.

0
ChrisCR 
Fragesteller
 18.05.2024, 05:40
@VeryBestAnswers

Das mit

<p />Hallo Welt<p>

stimmt nicht ganz. Es stimmt, dass der Self-closing Tag komplett ignoriert wird, bzw wie ein normaler Tag behandelt wird. Dennoch muss man den <p> Tag im Nachhinein schließen. In diesem Beispiel hätte man zwei P-Tags.

0
regex9  18.05.2024, 13:24
@VeryBestAnswers

Es stimmt zwar, dass der Slash in diesem Fall übersprungen und das erste Element nach wie vor als Startelement betrachtet wird. Rein auf die Syntax bezogen ist dieser Slash allerdings ein Fehler.

0
VeryBestAnswers  18.05.2024, 13:48
@regex9

Hm, ich habe gerade nochmal nachgeschaut, und du hast Recht was <p /> betrifft. Der Slash wird zwar von Browsern ignoriert, ist aber laut Spezifikation ein Fehler. <br /> hingegen wird von der Spezifikation genauso wie <br> erlaubt.

On HTML elements that are designated as void elements (essentially "An element that existed before HTML5 and which was forbidden to have any content"), end tags are simply forbidden. The slash at the end of the start tag is allowed, but has no meaning.
0

Ave!

Ich bevorzuge "white-space: pre-line", weil niemand <br> nutzt, der vernünftige Websites erstellen will.

Bei vergleichbaren Tags selbstverständlich in der Form: <meta />


ChrisCR 
Fragesteller
 18.05.2024, 04:17

Seit ich ein Video über diesen Artikel gesehen habe, hinterfrage ich diese Praxis ein wenig.

Ich finde es semantisch ansprechender, aber theoretisch ist es falsch. Und natürlich wird <br> noch benutzt, wenn man Beispielsweise Texte hat.

0
MagisterSamael  18.05.2024, 04:58
@ChrisCR
Seit ich ein Video über diesen Artikel gesehen habe, hinterfrage ich diese Praxis ein wenig.

Jedes, absolut jedes Framework wie etwa React.js und Angular verfolgt ebenso die /> Politik und kompiliert self-closing Tags mit vergessenem / sogar um.

Daher würde ich einem Artikel von einem Hobby-Entwickler nicht wirklich vertrauen, wenn die beiden größten Web-Firmen Google und Facebook wohl darauf schwören.

Und natürlich wird <br> noch benutzt, wenn man Beispielsweise Texte hat.

Als Spielerei ja, für professionelle Seiten, nein.

Es gibt Menschen, die Blind sind und den Vorleser nutzen. <br> kann hier zu massiven Problemen führen.

Von SEO einmal ganz abgesehen.

Kein etablierter und guter Webdesigner nutzt <br>

0
ChrisCR 
Fragesteller
 18.05.2024, 05:29
@MagisterSamael

Der "Hobby-Entwickler" bezieht sich auf die offizielle HTML5 Spezifikation und demonstriert es an Beispielen.

Dass third-party frameworks es anders handhaben als HTML5 ist mir bewusst.

Wenn man jedoch HTML5 Dokumente schreibt, ist

<tag />

offiziell falsch.

Mir ist außerdem nicht klar, was an einem Linebreak so falsch ist?

0
MagisterSamael  18.05.2024, 13:04
@ChrisCR
offiziell falsch.

Es gibt hier kein "falsch" oder richtig, wenn es ohnehin ignoriert wird.

Zur Leserlichkeit macht das nahezu jeder.

Das wäre als würdest du in JavaScript behaupten ein fehlendes Semikolon am Ende der Zeile sei "falsch".

Mir ist außerdem nicht klar, was an einem Linebreak so falsch ist?

Die automatischen Vorleser ignorieren den Tag und wenn es ein Absatz sein soll, wird dies nicht als lange Pause gewertet - wie es sein soll, sondern als kurze (wie ein nächster Satz).

Das ist semantisch völlig falsch.

Ferner haben auch einige Suchmaschinen ihre Problematiken mit <br>. Darüber hinaus sorgt die quantitativ häufige Verwendung von <br> automatisch zu einem schlechten SEO-Score. Da kannst du nichts dran ändern, weil die Vorgaben von bspw. Google kommen.

Mit "white-space: pre-line" habe ich bereits eine semantisch korrekte Methode erklärt, die auch den SEO-Score nicht beeinträchtigt.

So langsam komme ich mir vor als ob ich mit einem Dunning-Kruger argumentiere. Wie oft soll ich mich noch wiederholen?

0
MagisterSamael  18.05.2024, 13:14
@MagisterSamael
Mir ist außerdem nicht klar, was an einem Linebreak so falsch ist?

Schau dir eine beliebige vernünftige (und große) Seite an. Du wirst merken, dass anstatt mit <br> jeder Absatz als eigener <p> oder per "white-space: pre-line" eingefasst ist.

Kannst du auch hier auf gf sehr gut im Document sehen: Jeder Absatz einer Antwort/eines Kommentars wird als einzelnes <p> eingebunden.

Deshalb die Frage an dich: Wieso nutzen sie wohl nicht <br>?

Selbst deine verlinkte Seite, der ich nicht ganz zustimme, macht exakt das gleiche, obwohl sie <br> nutzen könnte: diesen Artikel

0
<br />

Gibt wichtigeres als das.
<br> ist wahrscheinlich richtig weil man es nicht schließen muss außer vielleicht in React mit JSX.
Ich mache viel mit React und es sieht besser/übersichtlicher aus deswegen benutze ich <br/>.

<br></br> siehst du höchstens bei faulen menschen wegen der Code Auto Vervollständigung im Code Editor.
Bei diesen Leuten kannst du dann aber keinen Clean Code erwarten