oder - xhtml br




HTML 5: Ist es,<br/> oder<br/>? (16)

  1. Wenn Sie HTML auf einer normalen Website <br/> , können Sie <br> oder <br/> , beide sind immer dann gültig, wenn Sie HTML5 als text / html <br/> .

  2. Wenn Sie HTML5 als XHTML verwenden (dh Inhaltstyp application / xhtml + xml mit einer XML-Deklaration), müssen Sie ein selbstschließendes Tag wie <br/> : <br/> .

    Wenn Sie das nicht tun, können einige Browser die Seite nicht rendern, um Ihre Seite zu rendern (besonders Firefox ist sehr strikt, nur gültige xhtml + xml-Seiten zu rendern).

    Wie in 1 erwähnt. <br/> ist auch gültig für HTML5, das zufällig als XML generiert wird, aber als normaler Text / HTML ohne XML-Deklaration (wie von einer XSL-Transformation, die Webseiten erzeugt, oder etwas ähnlichem).

Um Verwirrung zu vermeiden: Ein Leerzeichen vor dem Schrägstrich ist in HTML5 nicht erforderlich und macht keinen Unterschied zur Darstellung der Seite (wenn jemand ein Beispiel angeben kann, ziehe ich das zurück, aber ich glaube nicht, dass es das ist) stimmt - aber IE macht sicherlich viele andere seltsame Dinge mit allen Formen von <br> Tags).

Der ausgezeichnete Validator auf http://validator.w3.org/ ist sehr hilfreich, um zu überprüfen, was gültig ist (obwohl ich nicht sicher bin, ob man sich darauf verlassen kann, dass auch der Inhaltstyp überprüft wird).

Ich habe versucht, andere Antworten zu überprüfen, aber ich bin immer noch verwirrt - vor allem, nachdem ich W3schools HTML 5 Referenz gesehen habe .

Ich dachte, HTML 4.01 sollte "erlauben", dass einzelne Tags einfach <img> und <br> . Dann kam XHTML mit <img /> und <br /> ( wo jemand sagte, dass der Platz für ältere Browser da ist ).

Jetzt frage ich mich, wie ich meinen Code beim Üben von HTML 5 formatieren soll.

<!DOCTYPE HTML>

Ist es, <br/> oder <br /> ?


Ähm ... kennt jemand einen EINZIGEN Hersteller, User-Agent oder Browser-Hersteller, der jemals den W3C Spezifikationen 100% gefolgt ist ??? Also, wenn HTML5 sagt, dass es alle drei Break-Element-Versionen unterstützt, können Sie darauf wetten, dass die Hersteller die gleichen und noch schlampigeren Versionen unterstützen!

Das EINZIGE, was in dieser Debatte von Bedeutung ist, ist die konsequente Verwendung von Kodierung, die zufälligerweise auch XML-Spezifikationen sowie HTML-Spezifikationen folgt. Das bedeutet, dass Sie die korrekte XML-Version des break-Tags verwenden und Ihr gesamtes Team dazu ermutigen sollten, dasselbe zu tun:

<br />

Das gleiche Leerzeichen-Schrägstrich-Format sollte für die Tags img, a, hr und metas in Ihrem Code gelten. Warum? Weil:

  1. Es ist abwärtskompatibel zu älteren XHTML User-Agents / Browsern
  2. Die Browser-Anbieter unterstützen die XML-Version trotzdem, so dass die HTML5-Spezifikation strittig ist.
  3. Die schlampigen Implementierungen der meisten Benutzer-Agenten heute, in der Vergangenheit und in der Zukunft werden es akzeptieren.
  4. Es ermöglicht, dass Ihr Markup mit XML-Standards vergleichbar ist, falls Sie XHTML / XML-Dokumente aus Ihrem Markup erstellen müssen.
  5. Es ist eine "gute Programmierpraxis" für ALLE WEB-ENTWICKLER, weiterhin solide Markup-Praktiken zu verwenden, die XML folgen, einschließlich der Codierung in allen in Kleinbuchstaben geschriebenen Attributen, maskierten XML-Zeichen usw. usw. Warum? Wenn Sie in Zukunft zu XML-Daten wechseln müssen, wird automatisch in XML geschrieben und gedacht.
  6. Wir können nur hoffen, dass wir uns im zukünftigen World Wide Web von den Standards privater Anbieter entfernen und auf solides, zuverlässiges, verifiziertes Markup zurückgreifen, das schneller analysiert, Daten schneller über die Leitungen überträgt und unser zukünftiges Internet standardisierter macht Medium mit XML.

In der Robotik- und Maschinenwelt, in der Roboter nicht die gleichen Codierprobleme haben, die HTML5 für uns löst, gehen sie gerne zurück zu XML-Datensystemen und parsen solche UI-Webseiten viel schneller, wenn sie in XML konvertiert werden Daten.


Die Elemente ohne End-Tags werden als leere Tags bezeichnet. In HTML 4 und HTML 5 sind End-Tags nicht erforderlich und können weggelassen werden.

In xhtml sind Tags so streng. Das bedeutet, dass mit Start-Tag beginnen und mit End-Tag enden muss.


Die meisten Fälle in HTML sind die Tags in Paaren. Aber für einen Zeilenumbruch benötigen Sie kein Paar Tags. Um dies anzuzeigen, verwendet HTML das <br/> Format. <br/> ist der Richtige. Verwenden Sie dieses Format.

<br> -Tag hat kein End-Tag in HTML In XHTML muss das <br> -Tag korrekt geschlossen sein, wie <br /> : <br />

In XML muss jedes Tag geschlossen sein. XHTML ist eine Erweiterung von XML, daher müssen alle Regeln von XML für gültiges XHTML befolgt werden. Also auch leere Tags (Knoten ohne Kindknoten) mögen
sollte geschlossen sein. XML hat eine Kurzform namens selbstschließende Tags für leere Knoten. Sie können <br></br> as <br /> schreiben. Daher wird in XHTML <br /> verwendet.

HTML ist in dieser Hinsicht sehr nachsichtig, und es gibt keine solche Regel. In HTML werden also leere Knoten wie <br> <hr> <meta> usw. ohne den Schrägstrich geschrieben.

HTML

<br>
<hr>
<meta name="keywords" content="">
<link rel="canonical" href="http://www.google.com/">

XHTML

<br />
<hr />
<meta name="keywords" content="" />
<link rel="canonical" href="http://www.google.com/" />

Nicht alle Tags können selbst geschlossen sein. Zum Beispiel wird von XHTML-DTD nicht erlaubt.


Entsprechend der spec die erwartete Form für HTML 5, aber ein schließender Schrägstrich ist erlaubt.


Ich denke, dieses Zitat aus dem HTML 5 Reference Draft bietet die Antwort:

Einige Elemente dürfen jedoch keinerlei Inhalte enthalten. Diese sind als leere Elemente bekannt. In HTML kann die obige Syntax nicht für ungültige Elemente verwendet werden. Für solche Elemente muss das End-Tag weggelassen werden, da das Element vom Parser automatisch geschlossen wird. Zu diesen Elementen gehören unter anderem br, hr, link und meta

HTML Beispiel:

<link type="text/css" rel="stylesheet" href="style.css">

In XHTML schreiben die syntaktischen XML-Anforderungen vor, dass dies explizit gemacht werden muss, indem entweder ein explizites End-Tag wie oben oder die leere Element-Syntax verwendet wird. Dies wird erreicht, indem am Ende des Start-Tags unmittelbar vor der rechten Klammer ein Schrägstrich eingefügt wird.

Beispiel:

<link type="text/css" href="style.css"/>

Autoren können optional diese Syntax auch für Void-Elemente in der HTML-Syntax verwenden. Einige Autoren wählen vor dem Schrägstrich auch Whitespace, dies ist jedoch nicht notwendig. (Die Verwendung von Leerzeichen auf diese Weise ist eine Konvention, die von den Kompatibilitätsrichtlinien in XHTML 1.0, Anhang C, übernommen wurde.)


In HTML5 der Schrägstrich nicht mehr notwendig: <br> , <hr>


In HTML (bis zu HTML 4) : Verwenden Sie <br>

In HTML 5 : <br> ist bevorzugt, aber <br/> und <br /> ist auch akzeptabel

In XHTML : <br /> ist bevorzugt. Kann auch <br/> oder <br></br>

Anmerkungen:

  • <br></br> ist in HTML 5 nicht gültig, es wird als zwei Zeilenumbrüche betrachtet.
  • XHTML ist Groß-und Kleinschreibung, HTML ist nicht Groß-und Kleinschreibung.
  • Aus <br/> Abwärtskompatibilität würden einige alte Browser XHTML als HTML analysieren und auf <br/> aber nicht auf <br /> fehlschlagen

Referenz:


Meiner Meinung nach ist es besser, die reguläre Schreibweise ( <br /> ) anstelle der geschrumpften Schreibweise () zu verwenden, und zwar aus folgenden Gründen:

Konsistenz

In Ihrem HTML gibt es wahrscheinlich einige SVG und SVG unterstützen nur die reguläre Notation (zB <rect /> ).

Hackbarkeit

Frameworks wie React und NativeScript verwenden keine XML-Notation.
Ihr Markup-Code wird leichter zu analysieren sein.

Klarheit

Die normale Schreibweise ist selbst spät in der Nacht leichter zu lesen und zu verstehen.

Spezifikationen

HTML führte diese geschrumpfte Notation () ein, um die reguläre XML-Notation ( <br /> ) nicht zu ersetzen, sondern um verzeihlicher (und kurz) zu sein. Diese Notation wird oft als HTML-Notation bezeichnet, nur weil sie nur von HTML unterstützt wird. Sowohl <br> als auch <br /> sind gültige HTML-Tags.

Fazit

Wenn Sie einen vollwertigen Texteditor verwenden, konfigurieren Sie ihn so, dass er die reguläre Schreibweise (die von Emmet XHTML genannt wird) verwendet.
In Visual Studio Code müssen Sie beispielsweise nur die folgende Zeile zu Ihren Einstellungen hinzufügen:

"emmet.syntaxProfiles": {"html": "xhtml"}

Nun, alles, was ich weiß, ist, dass <br /> gibt eine Pause mit einer weißen Linie und <br> gibt nur eine Pause in einigen Fällen. Dies ist mir passiert, als ich ein IPN-Skript (PHP) eingerichtet und Mails verschickt und den Posteingang dafür geprüft habe. Ich weiß nicht warum, aber ich habe nur die Botschaft bekommen, sowohl mit <br /> and <br> nett zu sein

Schaut euch die Mail hier an: http://snag.gy/cLxUa.jpg

Die ersten beiden Textabschnitte sind durch <br /> , daher die Leerzeichen, die letzten drei Textzeilen im unteren und der letzte Abschnitt sind durch <br> und ergeben nur eine neue Zeile.


Sowohl HTML als auch <br /> sind in HTML5 akzeptabel, aber im Sinne von HTML sollte <br> verwendet werden. HTML5 ermöglicht das Schließen von Schrägstrichen, um mit Dokumenten, die zuvor HTML 4.01 und XHTML 1.0 waren, kompatibel zu sein und eine einfachere Migration zu HTML5 zu ermöglichen. Natürlich ist <br/> auch akzeptabel, aber um mit einigen älteren Browsern kompatibel zu sein, sollte vor dem schließenden Schrägstrich ( / ) ein Leerzeichen stehen.


Wenn Sie an Vergleichbarkeit (nicht Kompatibilität, aber Vergleichbarkeit) interessiert sind, würde ich bei <br /> bleiben.

Ansonsten ist es in Ordnung.


XML erfordert, dass alle Tags ein entsprechendes schließendes Tag haben. Es gibt also eine spezielle Kurzhandsyntax für Tags ohne inneren Inhalt.

HTML5 ist kein XML, daher sollte es keine solche Anforderung darstellen. Weder ist HTML 4.01.

Zum Beispiel, in HTML5-Spezifikationen , verwenden alle Beispiele mit br Tag eine Syntax, nicht <br/> .

UPD Eigentlich ist <br/> in HTML5 erlaubt . 9.1.2.1, 7.


XML erlaubt es nicht, Tags offen zu lassen, also macht es ein bisschen schlimmer als die anderen beiden. Die anderen beiden sind ungefähr gleichwertig mit der zweiten, die für die Kompatibilität mit älteren Browsern bevorzugt wird. Eigentlich wird aus Gründen der Kompatibilität der Platz vor / bevorzugt, aber ich denke, dass dies nur für Tags mit Attributen sinnvoll ist. Also würde ich entweder <br/> oder <br /> sagen, was auch immer deiner Ästhetik gefällt.

Um es zusammenzufassen: Alle drei sind gültig, wobei der erste etwas weniger "portabel" ist.

Edit : Nun, da wir alle verrückt nach Specs sind, denke ich, dass es sich lohnt, auf dev.w3.org/html5/markup/syntax.html#void-element :

Start-Tags bestehen aus den folgenden Teilen in genau der folgenden Reihenfolge:

  1. Ein "<" Zeichen.
  2. Der Tag-Name des Elements.
  3. Optional ein oder mehrere Attribute, denen jeweils ein oder mehrere Leerzeichen vorangestellt werden müssen.
  4. Optional ein oder mehrere Leerzeichen.
  5. Optional ein "/" - Zeichen, das nur vorhanden sein kann, wenn das Element ein void-Element ist.
  6. Ein ">" Zeichen.

<br> ist ausreichend, aber in XHTML <br /> ist bevorzugt.

Wenn Sie Dreamweaver CS6 verwenden, wird die Autovervollständigung als <br /> .

Um Ihre HTML-Datei auf W3C zu validieren, siehe: http://validator.w3.org/


<br> und <br /> rendern unterschiedlich in einigen Browsern, so dass die Wahl des einen oder anderen nicht Ihr Projekt verletzt, aber erwarten Sie, dass ein Bulk find..replace in einigen Browsern das Rendern der Seite beeinflusst Bei Extraarbeiten für sich selbst oder gar Peinlichkeit sollte die Änderung nichts in Ihrem Testbrowser beeinflussen, sondern im bevorzugten Browser Ihrer Kunden durchbrechen.

Ich bevorzuge es, da es das ist, was ich seit Erwise und Netscape Navigator (frühe Webbrowser) verwendet habe, aber es gibt keinen Grund, <br /> stattdessen nicht zu wählen. Es kann für einige Vorverarbeitung, Vergleichbarkeit usw. nützlich sein.

Auch wenn Ihre Wahl darauf hinausläuft, dass Sie das eine oder das andere bevorzugen, oder Sie (oder Ihr Lieblings-HTML-Editor, zB Dreamweaver) mögen Ihren Code als XML-kompatibel ansehen. Es liegt an dir.

Eine schnelle Randnotiz:

Nicht zu verwechseln mit br , aber zusätzlich können Sie auch wbr Tags in Ihrem HTML- wbr : Ein Word Break-Opportunity-Tag, das angibt, wo in einem Text ein Zeilenumbruch sinnvoll wäre.

Für weitere Informationen lesen Sie bitte die HTML5-Spezifikation .





html5