2201 votes

HTML 5: Is it <br>, <br/>, or <br />?

J'ai essayé de vérifier autres réponses mais je suis toujours confus, surtout après avoir vu Référence HTML 5 de W3schools .

Je pensais que HTML 4.01 était censé "permettre" aux balises uniques d'être simplement <img> y <br> . Puis le XHTML est arrivé avec <img /> y <br /> ( où quelqu'un a dit que l'espace est là pour les anciens navigateurs ).

Maintenant, je me demande comment je suis censé formater mon code lorsque je pratique le HTML 5.

Est-ce que c'est <br> , <br/> o <br /> ?

7 votes

Quelle que soit celle que vous utilisez aujourd'hui, n'oubliez pas que certaines technologies d'assistance (par exemple, les lecteurs d'écran) l'annonceront probablement. NVDA dit "blanc", par exemple. Les utilisateurs de lecteurs d'écran ne tireront probablement rien d'autre que du bruit de cette annonce supplémentaire. Pensez à ajouter un role="presentation" sauf dans les rares cas où un saut de ligne fait office de "contenu".

0 votes

Selon la spécification actuelle, "6. alors, si l'élément est l'un des éléments vides, ou si l'élément est un élément étranger, alors il peut y avoir un seul caractère U+002F SOLIDUS (/). Ce caractère n'a aucun effet sur les éléments nuls" html.spec.whatwg.org/multipage/syntaxe.html#début-balises

0 votes

@brennanyoung Lorsque le demandeur n'écrit pas une page sur le html, les lecteurs d'écran ne prononcent pas du tout la balise. Ils peuvent faire une petite pause pour le saut de ligne, mais cette pause sera la même pour la version auto-fermée et la version simple.

1829voto

Brian Campbell Points 101107

Tout simplement <br> est suffisante.

Les autres formes sont là pour la compatibilité avec le XHTML ; pour qu'il soit possible d'écrire le même code que le XHTML et qu'il fonctionne également en tant que HTML. Certains systèmes qui génèrent du HTML peuvent être basés sur des générateurs XML, et n'ont donc pas la capacité de produire un simple code HTML. <br> Si vous utilisez un tel système, il est possible d'utiliser la balise <br/> il n'est pas nécessaire de le faire si vous n'avez pas besoin de le faire.

Cependant, très peu de personnes utilisent réellement le XHTML. Vous devez servir votre contenu en tant que application/xhtml+xml pour qu'elle soit interprétée comme du XHTML, et cela ne fonctionnera pas dans les anciennes versions d'IE - cela signifie également que toute petite erreur que vous ferez empêchera votre page de s'afficher dans les navigateurs qui prennent en charge le XHTML. Ainsi, la plupart de ce qui ressemble à du XHTML sur le web est en fait servi, et interprété, comme du HTML. Voir Servir XHTML comme text/html considéré comme nuisible pour plus d'informations.

29 votes

Mais avoir un xml valide n'implique pas servir xhtml, en tout cas. Il peut être utile pour toutes sortes de prétraitements locaux.

39 votes

Oui, mais il faut faire très attention à traiter le HTML comme du XML. Ce sont des langages différents, et seul un sous-ensemble de chacun est compatible. Par exemple, en XML, <br/> est la même chose que <br></br> mais ce dernier n'est pas un HTML valide.

12 votes

Brian, l'idée était que tu peut faites en sorte que votre html soit du xml bien formé, c'est tout. Bien sûr, lorsque vous transformez l'un en l'autre, vous devez vous assurer qu'il est toujours valide, mais cela vaut-il la peine d'être mentionné ? :)

321voto

Daan Points 3019

Je pense que cette citation du Projet de référence HTML 5 fournit la réponse :

3.2.2.2 Éléments vides

Le terme éléments vides est utilisé pour désigner les éléments qui doivent être vide . Ces exigences ne s'appliquent qu'à la syntaxe HTML. En XHTML, tous ces éléments sont traités comme des éléments normaux, mais doivent être marqués comme des éléments vides.

Il est interdit à ces éléments de contenir le moindre contenu. En HTML, ces éléments ont un balise de départ seulement. Le site étiquette à fermeture automatique peut être utilisée. Le site étiquette finale doit être omis car l'élément est automatiquement fermé par l'analyseur syntaxique.

Exemple HTML :
Un élément vide dans la syntaxe HTML. Il n'est pas autorisé dans la syntaxe XHTML.

<hr>

Exemple :
Un élément void utilisant la syntaxe des balises à fermeture automatique compatible avec HTML et XHTML.

<hr/>

Exemple XHTML :
Un élément void utilisant la syntaxe XHTML-only avec une balise de fin explicite. Ceci n'est pas autorisé pour les éléments void dans la syntaxe HTML.

<hr></hr>

En d'autres termes :

  • HTML 5 non valide : <IMG></IMG>
  • HTML 5 valide : <IMG> , <IMG/>

Et si le HTML interdit certaines balises de fermeture, xhtml nécessite les :

  • Invalide xhtml : <img>
  • xhtml valide : <img></img> o <img/>

D'autres éléments qui sont interdit d'avoir une balise de fermeture en HTML :

Élément

HTML valide

xhtml valide

AREA

<AREA>

<AREA></AREA>

BASE

<BASE>

<BASE></BASE>

BASEFONT

<BASEFONT>

<BASEFONT></BASEFONT>

BR

<BR>

<BR></BR>

COL

<COL>

<COL></COL>

CADRE

<FRAME>

<FRAME></FRAME>

RH

<HR>

<HR></HR>

IMG

<IMG>

<IMG></IMG>

INPUT

<INPUT>

<INPUT></INPUT>

ISINDEX

<ISINDEX>

<ISINDEX></ISINDEX>

LIEN

<LINK>

<LINK></LINK>

META

<META>

<META></META>

PARAM

<PARAM>

<PARAM></PARAM>

Le fait que le HTML interdit certaines balises de fermeture, tandis que xhtml nécessite c'est le problème de xhtml. Si vous écrivez du HTML, vous suivez les règles du HTML.

Dans le même temps, les browers ont renoncé à faire respecter les normes, car tout le monde se trompe. Ce n'est pas évident :

  • que </BR> es interdit
  • que </P> es en option
  • y </SPAN> es requis

Et puis xhtml est arrivé, avec sa règle XML selon laquelle chaque doit avoir une balise de fermeture, et les gens ont simplement supposé que le HTML était la même chose. Les normes ont donc abandonné, et ont été révisées plus tard pour lever les bras devant la réalité.

24 votes

Donc, la réponse est de coder de préférence sans barre oblique et sans espace, mais avoir la barre oblique (avec ou sans espace) est facultatif ?

79 votes

J'aime la façon dont le cahier des charges n'est pas particulièrement précis (sur ce point) "meh, faites ce que vous voulez !".

54 votes

Puisque c'est facultatif, j'aime mieux l'option /> parce que c'est bon pour la lisibilité.

157voto

XML ne permet pas de laisser les balises ouvertes, donc cela rend <br> un peu moins bien que les deux autres. Les deux autres sont à peu près équivalents avec le second ( <br/> ) préféré pour la compatibilité avec les anciens navigateurs. En fait, l'espace avant / est préférable pour des raisons de compatibilité, mais je pense que cela n'a de sens que pour les balises qui ont des attributs. Je dirais donc soit <br/> o <br /> selon ce qui vous convient le mieux.

En résumé, les trois sont valables, la première ( <br> ) étant un peu moins "portable".

Editar : Maintenant que nous sommes tous fous de spécifications, je pense qu'il vaut la peine de souligner que selon dev.w3.org :

Les balises de départ sont les suivantes suivantes, dans l'ordre exact suivant :

  1. Un caractère "<".
  2. Le nom de la balise de l'élément.
  3. De manière facultative, un ou plusieurs attributs, dont chacun doit être précédé d'un ou plusieurs caractères d'espace caractères d'espacement.
  4. Facultativement, un ou plusieurs caractères d'espacement.
  5. Facultativement, un caractère "/", qui peut être présent uniquement si l'élément est un élément vide.
  6. Un caractère ">".

19 votes

Le HTML n'est pas vraiment le XML, mais il en est très proche.

6 votes

Oui, ça ne l'est pas. Mais / est un dénominateur commun ici. HTML5 permet spécifiquement l'utilisation de / : "En option, un caractère "/", qui ne peut être présent que si l'élément est un élément vide".

0 votes

Le HTML est un véritable langage de balisage, mais pas le XML. On utilise le XML pour créer des langages tels que le RSS. Ai-je raison ? :P

133voto

JackDev Points 1559

Sur HTML (jusqu'à HTML 4) : utilisation <br>

Sur HTML 5 : <br> est préférable, mais <br/> y <br /> est également acceptable

Sur XHTML : <br /> est préférable. Peut également utiliser <br/> o <br></br>

Notes :

  • <br></br> n'est pas valide en HTML 5, il sera considéré comme deux sauts de ligne.
  • Le XHTML est sensible à la casse, le HTML ne l'est pas.
  • Pour des raisons de rétrocompatibilité, certains anciens navigateurs analysaient le XHTML comme du HTML et échouaient lors de l'utilisation de la fonction <br/> mais pas <br />

Référence :

0 votes

Vérifié le lien, l'approche préférée est <br>, mais où est-il dit <br/>que ce n'est pas acceptable ?

4 votes

Pour clarifier, pour une syntaxe conforme à XML, <br/> y <br /> (avec un ESPACE) sont égaux, sans préférence pour l'un ou l'autre. Voir le XML 1.0 spéc. Espace blanc (ESPACE, tabulation ou LINE FEED) avant l'élément /> est facultatif, sans préférence.

2 votes

Pouvez-vous citer une référence pour la syntaxe non-XML qui est préférée dans HTML5 ? C'est une nouvelle pour moi. Le support optionnel de la stricte conformité XML était un objectif fondateur de HTML5, si je me souviens bien. Peut-être ai-je raté quelque chose sur le HTML et XHTML à l'adresse whatwg.org, ou à l'adresse W3C Polyglot Markup : Un profil robuste du vocabulaire HTML5 au W3C.

62voto

tvanfosson Points 268301

Selon le spec la forme attendue est <br> pour HTML 5 mais une barre oblique de fermeture est autorisée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X