HTML 5: est-ce <br>, <br/> ou <br />?

2034

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

Je pensais que HTML 4.01 était censé "autoriser" les balises simples à être simplement <img>et <br>. Puis XHTML est venu avec <img />et <br />( où quelqu'un a dit que l'espace était là pour les anciens navigateurs ).

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

Est-ce <br>, <br/>ou <br />?

Eikern
la source
1
Quelle que soit celle que vous utilisez aujourd'hui, veuillez considérer que certaines technologies d'assistance (par exemple, les lecteurs d'écran) l'annonceront probablement. NVDA dit "vide", par exemple. Les utilisateurs de lecteurs d'écran ne gagneront probablement rien d'autre que du bruit de cette annonce supplémentaire. Pensez à ajouter un role="presentation"attribut, sauf dans les rares cas où un saut de ligne fonctionne en tant que «contenu».
brennanyoung
Selon la spécification actuelle "6. Ensuite, si l'élément est l'un des éléments vides, ou si l'élément est un élément étranger, il peut y avoir un seul caractère SOLIDUS U + 002F (/). Ce caractère n'a aucun effet sur le vide elements " html.spec.whatwg.org/multipage/syntax.html#start-tags
Tim Abell

Réponses:

1544

C'est tout simplement <br>suffisant.

Les autres formulaires sont là pour la compatibilité avec XHTML; pour permettre d'écrire le même code que XHTML, et de le faire aussi travailler en 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 possibilité de produire uniquement une <br>balise nue ; si vous utilisez un tel système, c'est très bien à utiliser <br/>, ce n'est tout simplement pas nécessaire si vous n'avez pas besoin de le faire.

Cependant, très peu de gens utilisent XHTML. Vous devez servir votre contenu application/xhtml+xmlpour qu'il soit interprété comme XHTML, et cela ne fonctionnera pas dans les anciennes versions d'IE - cela signifiera également que toute petite erreur que vous faites empêchera l'affichage de votre page dans les navigateurs qui prennent en charge 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 en tant que texte / html considéré comme nuisible pour plus d'informations.

Brian Campbell
la source
23
Mais avoir un xml valide n'implique pas de toute façon de servir du xhtml. Il peut être utile pour toutes sortes de prétraitements locaux.
Michael Krelin - hacker
29
Oui, mais vous devez être très prudent lors du traitement de HTML en XML. Ce sont des langues différentes et seul un sous-ensemble de chacune est compatible. Par exemple, en XML, <br/>est identique à <br></br>, mais ce dernier n'est pas du HTML valide.
Brian Campbell
10
Brian, l'idée était que vous puissiez avoir votre html bien formé xml, c'est tout. Bien sûr, lors de la transformation de l'un en un autre, vous devez vous assurer qu'il est toujours valide, mais cela vaut-il la peine d'être mentionné? :)
Michael Krelin - pirate informatique
5
@Marco Je ne pense pas que document.write soit terriblement rapide par rapport au réel (x) html (car il doit être exécuté). Dans tous les cas, Javascript n'est pas nécessairement disponible sur tous les ordinateurs, donc les sites Web qui en dépendent trop ne sont pas très flexibles. De plus, le html n'a pas de fonctions.
Michael0x2a
8
@Marco: Huh, je ne savais pas que document.write cela ne fonctionne pas en xhtml - merci pour le partage. Je suis d'accord qu'il serait idiot pour les webapps d'essayer de faire quoi que ce soit sans Javascript, mais j'essayais de dire que les sites Web qui reposent à près de 100% sur Javascript sont plus fragiles et peuvent échouer lorsque les utilisateurs désactivent javascript (ou utilisent des téléphones plus anciens) ou quelque chose)
Michael0x2a
227

Je pense que cette citation du HTML 5 Reference Draft 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 vides . Ces exigences s'appliquent uniquement à 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 du contenu. En HTML, ces éléments n'ont qu'une balise de début . La syntaxe de balise à fermeture automatique peut être utilisée. La balise de fin doit être omise car l'élément est automatiquement fermé par l'analyseur.

Exemple HTML:
un élément void dans la syntaxe HTML. Cela n'est pas autorisé dans la syntaxe XHTML.

<hr>

Exemple:
un élément void utilisant la syntaxe de balise à fermeture automatique compatible HTML et XHTML.

<hr/>

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

<hr></hr>
Daan
la source
22
Donc, la réponse est de coder de préférence sans barre oblique ni espace, mais avoir la barre oblique (avec ou sans espace) - est facultative?
Eikern
67
J'adore la façon dont la spécification n'est pas particulièrement spécifique (sur ce point) "meh, fais ce que tu veux!"
Matt Ellen
42
Puisqu'il est facultatif, j'aime plus />parce qu'il est bon pour la lisibilité.
BrunoLM
38
J'aime fermer explicitement mes balises pour aucune autre raison que cela me semble juste et logique lorsque je lis / écris du code. Je suis heureux que le brouillon de référence HTML5 soit d'accord avec moi.
Erreur de syntaxe
7
Cela me semble assez spécifique. <br> et <br /> sont tous les deux du HTML5 légal.
William Denniss
135

XML ne permet pas de laisser les balises ouvertes, c'est donc <br>un peu pire que les deux autres. Les deux autres sont à peu près équivalents au second ( <br/>) préféré pour la compatibilité avec les navigateurs plus anciens. En fait, l'espace avant /est préféré 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/>ou <br />, selon ce qui plaît à votre esthétique.

Pour résumer: les trois sont valables, le premier ( <br>) étant un peu moins "portable".

Edit : 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ébut se composent des parties suivantes, dans l'ordre exactement suivant:

  1. Un caractère "<".
  2. Nom de balise de l'élément.
  3. Facultativement, un ou plusieurs attributs, dont chacun doit être précédé d'un ou plusieurs caractères d'espace.
  4. Facultativement, un ou plusieurs caractères d'espace.
  5. Facultativement, un caractère "/", qui peut être présent uniquement si l'élément est un élément vide.
  6. Un caractère ">".
Michael Krelin - pirate
la source
17
HTML n'est pas réellement XML, juste assez proche de lui.
tloach
6
Oui, non. Mais /c'est un dénominateur commun ici. HTML5 autorise spécifiquement l'utilisation de /: "Facultativement, un caractère" / ", qui peut être présent uniquement si l'élément est un élément vide".
Michael Krelin - hacker
4
helloworlder, je dirais que la spécification HTML5 est presque conforme à XML.
Michael Krelin - hacker
5
Je voudrais juste ajouter que sur XML et HTML, le ML signifie Markup Language. La raison pour laquelle il y a tellement de chevauchement entre eux est qu'ils ont tous deux été définis à l'origine à l'aide de SGML (Standardized Generalized Markup Language), mais peu de gens s'en souviennent maintenant ...
John Vincent
4
@BennyNeugebauer, Si vous utilisez regex pour analyser le HTML, vous êtes plus ou moins laissé à compter sur votre chance plutôt que sur des balises correctement fermées ;-)
Michael Krelin - hacker
104

En HTML (jusqu'à HTML 4) : utilisez<br>

En HTML 5 : <br>est préféré, mais <br/>et <br />est également acceptable

En XHTML : <br />est préférable. Peut également utiliser <br/>ou<br></br>

Remarques:

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

Référence:

JackDev
la source
vérifié le lien, l'approche privilégiée est <br>, mais où est-il dit que <br/> ce n'est pas acceptable?
JackDev
4
Pour clarifier, pour la syntaxe compatible XML, <br/>et <br />(avec un espace) sont égaux, sans préférence pour les deux. Voir la spécification XML 1.0 . Les espaces (ESPACE, tabulation ou AVANCE LIGNE) avant le />est facultatif, sans préférence.
Basil Bourque
1
Pouvez-vous citer une référence pour la syntaxe non XML préférée dans HTML5? Ce sont des nouvelles pour moi. La prise en charge facultative de la stricte conformité XML était un objectif fondateur de HTML5, si je me souviens bien. Peut-être que j'ai manqué quelque chose sur le document HTML vs XHTML sur whatwg.org, ou le balisage polyglotte W3C: un profil robuste du vocabulaire HTML5 au W3C.
Basil Bourque
1
@BasilBourque Pour réitérer ce que je vous ai dit ailleurs. Lisez les spécifications réelles en HTML5 pour les balises et les éléments et vous ne trouverez JAMAIS, jamais de recommandation ou suggestion d'exiger ou suggérer d'utiliser une barre oblique de fermeture pour ces balises. Si vous souhaitez utiliser XML ou XHTML, vous n'utilisez pas HTML et c'est une autre histoire. N'utilisez PAS de barre oblique de fermeture pour ces balises HTML. Ailleurs, la spécification dit que vous pouvez en mettre un mais cela ne signifie rien, ne fait rien et les navigateurs sont invités à l'ignorer. Il est donc inutile et inutile d'en faire un usage tout aussi inutile et inutile.
Rob
@Rob So Section 8.1.2.1. Balises de début de la section 8. La syntaxe HTML du document, recommandation HTML 5.2 W3C, 14 décembre 2017 , publiée par le W3C n'est pas la spécification réelle de HTML? S'il vous plaît donnez votre avis.
Basil Bourque
54

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

tvanfosson
la source
27

Je recommanderais d'utiliser <br />pour les raisons suivantes:

1) Les éditeurs de texte et XML qui mettent en évidence la syntaxe XML dans différentes couleurs se mettront en surbrillance correctement avec <br />mais ce n'est pas toujours le cas si vous utilisez<br>

2) <br />est rétrocompatible avec XHTML et le HTML bien formé (c'est-à-dire: XHTML) est souvent plus facile à valider pour les erreurs et le débogage

3) Certains anciens analyseurs et certaines spécifications de codage nécessitent de l'espace avant la barre oblique de fermeture (c'est-à-dire: <br />au lieu de <br/>) tels que la spécification de codage du plugin WordPress: http://make.wordpress.org/core/handbook/coding-standards/html/

D'après mon expérience, je n'ai jamais rencontré de cas où l'utilisation <br />est problématique, cependant, il existe de nombreux cas où <br/>ou surtout <br>pourraient être problématiques dans les anciens navigateurs et outils.

Kmeixner
la source
1
Un HTML bien formé n'est pas du XHTML.
jmarkmurphy
1
XHTML est un HTML bien formé par définition. XHTML suit les règles de XML, selon w3schools "XML est un langage de balisage où les documents doivent être balisés correctement (" bien formés ") ... ... En combinant les atouts de HTML et XML, XHTML a été développé. XHTML est du HTML repensé en XML. " (voir w3schools.com/html/html_xhtml.asp )
Kmeixner
2
Le HTML peut être bien formé, mais ne pas être du XML valide. W3Schools n'est pas toujours la référence la plus fiable.
jmarkmurphy
Le professeur du cours universitaire d'informatique sur la programmation Web que j'ai suivi en 1997 a également affirmé que le xhtml est un html bien formé. Je ne sais pas d'où vous obtenez vos informations, pouvez-vous citer des sources officielles en ligne pour sauvegarder votre réclamation?
Kmeixner
1
@jmarkmurphy, je pense que vous n'êtes peut-être pas familier avec le terme "bien formé" étant un terme de jargon technique pour faire référence à l'exigence des normes XML et XHTML que toutes les balises doivent avoir des balises de fermeture et doivent être imbriquées dans le bon ordre . <hr> et <br> ne répondent pas aux exigences de XML et XHTML car ils n'ont pas de balises de fermeture, par exemple: <br /> ou <br> </br> sont valides, <br> n'est pas valide XHTML ou XML . Le HTML, bien sûr, n'a pas l'exigence bien formée, donc <br> et <hr> ne sont valides qu'en HTML.
Kmeixner
20

XML requiert que toutes les balises aient une balise de fermeture correspondante. Il existe donc une syntaxe abrégée spéciale pour les balises sans contenu interne.

HTML5 n'est pas XML, il ne devrait donc pas poser une telle exigence. HTML 4.01 non plus.

Par exemple, dans les spécifications HTML5 , tous les exemples avec brbalise utilisent la <br>syntaxe, non <br/>.

UPD En fait, <br/>est autorisé en HTML5 . 9.1.2.1, 7.

sastanin
la source
2
"HTML5 n'est pas XML, donc il ne devrait pas poser une telle exigence." Que ce soit correct ou non dépend de l'interprétation du mot "HTML5". Si nous parlons de HTML5 comme langue, cette affirmation est correcte. Si toutefois nous parlons de HTML5 en tant que spécification, cette affirmation est incorrecte. La spécification HTML5 définit "un vocabulaire et des API associées pour HTML et XHTML". Je sais que c'est un peu tatillon, je ne dis pas que cette réponse est fausse, je donne juste des informations supplémentaires au lecteur.
Christian Hujer
14

Si vous êtes intéressé par la comparabilité (pas la compatibilité, mais la comparabilité), je m'en tiendrai à <br />.

Sinon, ça <br>va.

MindStalker
la source
1
Quelqu'un devrait revenir en arrière. Le sens est changé.
Josiah
9
Qu'entend-on par comparabilité? Je ne comprends pas.
tuxayo
12

Les deux <br>et <br />sont acceptables en HTML5, mais dans l'esprit du HTML, <br>doivent être utilisés. HTML5 permet de fermer les barres obliques afin d'être plus compatible avec les documents qui étaient auparavant HTML 4.01 et XHTML 1.0, permettant une migration plus facile vers HTML5. Bien sûr, <br/>est également acceptable, mais pour être compatible avec certains navigateurs plus anciens, il devrait y avoir un espace avant la barre de fermeture ( /).

kevinji
la source
1
@ Knickerless-Noggins Je ne sais pas où vous lisez cela, mais <br />c'est parfaitement acceptable, et W3Schools n'est pas la spécification pour HTML. Voir la spécification HTML5 , qui indique clairement que "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) . ] "
kevinji
Cette réponse, comme d'autres, minimise à tort la légitimité d'une stricte conformité XML en HTML5. La prise en charge de XML n'est pas une fonction de transition ou de migration temporaire. La prise en charge facultative de la conformité XML était un objectif fondateur de HTML5. Il s'agit d'une fonctionnalité essentielle pour les personnes utilisant des outils XML pour travailler avec leur contenu HTML.
Basil Bourque
12
  1. Si vous produisez du code HTML sur un site Web normal, vous pouvez utiliser <br> ou <br/> , les deux sont valides chaque fois que vous diffusez HTML5 en tant que texte / html.

  2. Si vous êtes au service de HTML5 comme XHTML ( à savoir l' application de type de contenu / xhtml + xml, avec une déclaration XML), vous devez utiliser une balise de fermeture automatique comme ceci: <br/>.

    Si vous ne le faites pas, certains navigateurs peuvent carrément refuser de rendre votre page (Firefox en particulier est très strict pour ne rendre que les pages xhtml + xml valides).

    Comme indiqué en 1. <br/>est également valide pour HTML5 qui se trouve être généré en XML mais servi comme un texte / html normal sans déclaration XML (comme à partir d'une transformation XSL qui génère des pages Web, ou quelque chose de similaire).

Pour dissiper la confusion: mettre un espace avant la barre oblique n'est pas requis en HTML5 et ne fait aucune différence sur la façon dont la page est rendue (si quelqu'un peut citer un exemple, je le rétracterai, mais je ne pense pas que ce soit vrai - mais IE fait certainement beaucoup d'autres choses étranges avec toutes les formes de <br>balises).

L'excellent validateur sur http://validator.w3.org est vraiment utile pour vérifier ce qui est valide (bien que je ne sois pas sûr que vous puissiez vous y fier pour vérifier également le type de contenu).

Iain Collins
la source
attendez, le mimétype text / html est un XML strict?
amwinter
1
Vous ne devriez pas le servir avec une déclaration XML si vous utilisez text / html, mais le contenu peut être autrement XML valide (par exemple généré à partir de quelque chose qui génère XML, comme une sortie XSLT ou un objet qui se sérialise en XML).
Iain Collins
Je ne comprends toujours pas: si text / html doit avoir un <br />, quand dois-je utiliser unclosed <br>?
amwinter
1
Oh désolé, les deux sont techniquement valides pour HTML5 si c'est via text / html. Vous pouvez le confirmer avec le validateur (surtout) génial sur validator.w3.org . Ma formulation ci-dessus est médiocre. Je vois que maintenant, je vais la modifier.
Iain Collins
3
Je pense que c'était Netscape Navigator 3 ou 4 qui n'aimait pas <br/>, certainement rien à craindre de nos jours.
robertc
12

Les deux <br>et le <br/>fera bien , mais je préfère , <br/>car il est un peu plus logique. Il est logique d'attendre une balise de fermeture chaque fois qu'il y a une balise d'ouverture. Par conséquent, votre code est légèrement plus facile à lire si vous n'utilisez pas de balise d'ouverture alors qu'il n'y aura pas de balise de fermeture.

Tous les navigateurs (sauf peut-être certains très anciens qui n'ont pas d'importance) afficheront exactement les mêmes. Cependant, <br>n'est pas compatible xHTML.

Dan Bray
la source
7

<br>et <br/>rendre différemment. Certains navigateurs interprètent <br/>comme <br></br>et insèrent deux sauts de ligne

Samuel
la source
12
Quelle? Connaissez-vous les navigateurs?
Eikern
7
Trouvé ceci lors des tests des navigateurs de l'ère ie5 / ns4. Si je me souviens bien, c'était en mode de conformité aux normes. Mais c'était il y a longtemps ...
Samuel
3
Pour les navigateurs HTML4 stricts (qui n'est pratiquement qu'un validateur HTML4), <br />signifie <br>&gt;.
Konrad Borowski
7

<br>est suffisant mais en XHTML <br />est préféré selon le WHATWG et selon le W3C .

Pour citer la section 8.1.2.1 de la recommandation HTML 5.2 W3C, 14 décembre 2017

Les balises de début doivent avoir le format suivant:

  1. Après les attributs, ou après le nom de la balise s'il n'y a pas d'attributs, il peut y avoir un ou plusieurs caractères d'espace. (Certains attributs doivent être suivis d'un espace. Voir le §8.1.2.3 Attributs ci-dessous.)

  2. Ensuite, 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 SOLIDUS U + 002F (/). Ce caractère n'a aucun effet sur les éléments vides, mais sur les éléments étrangers, il marque la balise de début comme étant à fermeture automatique.

Si vous utilisez Dreamweaver CS6, il se complétera automatiquement en tant que <br />.

Pour valider votre fichier HTML sur W3C, voir: http://validator.w3.org/

krupal
la source
@Julix En effet, pourquoi les votes négatifs? C'est l'une des rares réponses correctes sur cette page. HTML5 est absolument conforme à XML, facultativement, et dans la syntaxe XML, une seule balise doit être fermée avec la barre oblique. Comment des faits aussi simples peuvent-ils être si mal interprétés lorsqu'ils sont écrits en noir et blanc dans la spécification .
Basil Bourque
5

En validation, de cette question, cela dépend vraiment de ce que !DOCTYPEvous essayez de faire passer la vérification.

Mon favori personnel est l' 4.01 Transendroit où j'utilise le <br/>et il efface les avertissements et les erreurs qui peuvent avoir surgi lors de la validation

Strict est une bête beaucoup plus compliquée, il déteste "SHORTTAGS"et ne veut littéralement que le<br></br>

Dans HTML5ou le "LAX" du monde du code, il n'y a vraiment pas de bonne réponse car elle detects every example you put upy est aussi correcte ......

En fin de compte, je pense que tout ce qui compte is what validation YOU PREFERou the person that you are working for prefers... avec le lackadaisicalmouvement de rigueur du code dans html5nous voyons des CODERS TRÈS LAZY

Slow Poke
la source
4

À mon humble avis, il est préférable d'utiliser la notation régulière ( <br />) au lieu de la notation pardonnante ( <br>) pour les raisons suivantes:

Cohérence

Dans votre code HTML, certains SVG et SVG ne prennent en charge que la notation régulière (par exemple <rect />).

Hackability

Ce n'est pas un cas que les frameworks comme React et NativeScript utilisent une notation XML.
Votre code de balisage sera plus facile à analyser.

Clarté

La notation régulière est plus facile à lire et à comprendre, même tard le soir.

Caractéristiques

Les deux <br>et <br />sont des balises HTML valides.

Conclusion

Si vous utilisez un éditeur de texte à part entière, configurez-le pour utiliser la notation régulière (qui est appelée XHTML par Emmet ).
Par exemple, dans Visual Studio Code, il vous suffit d'ajouter la ligne suivante à vos paramètres:

"emmet.syntaxProfiles": {"html": "xhtml"}
isar
la source
1
À proprement parler, ce sont deux notations courtes: la notation courte HTML et la notation courte XML, respectivement. La notation complète est <br></br>, et elle est valide en X (HT) ML, mais pas en HTML.
Ilya Streltsyn
1
HTML5 n'a pas introduit <br>. Il a toujours été en HTML. XHTML introduit <br/>
jmarkmurphy
1
Pour entrer dans l'histoire de cela correctement, vous devez vous plonger profondément dans SGML.
Michael Kay
3

Eh bien, tout ce que je sais, c'est que cela <br />donne une pause avec une ligne blanche et <br>donne juste une pause dans certains cas. Cela m'est arrivé lorsque je configurais un script IPN (PHP) et que j'envoyais des e-mails et que je vérifiais la boîte de réception. Je ne sais pas pourquoi, mais je n'ai reçu le message que<br /> and <br>

Jetez un œil au courrier ici: http://snag.gy/cLxUa.jpg

Les deux premières sections de texte sont séparées par <br />, d'où les lignes d'espacement, les trois dernières lignes de texte en bas et la dernière section est séparée par <br>et donne juste une nouvelle ligne.

Emanuel Olsson
la source
3
De quel navigateur s'agissait-il?
Dave Burton
3

En HTML <br>et en XHTML <br/>.

Je vais vous suggérer d'utiliser <br/>.

Shubham Kumar
la source
2

Comme beaucoup d' autres ont couvert, à la fois <br>et <br/>sont acceptables.

Je suppose que le compromis est la meilleure lisibilité et la compatibilité descendante par <br/>rapport à l'envoi d'un caractère de moins aux utilisateurs finaux <br>.

Et puisque Google utilise <br>moi aussi.

(Bien sûr, gardez à l'esprit qu'ils pourraient me servir <br>parce que j'utilise Chrome qu'ils savent le prendre en charge. Dans IE, ils pourraient toujours servir <br/>)

Dimitris
la source
2

<br>fonctionne très bien. Les versions plus strictes comme XHTML vous obligent à ajouter la fermeture, et les versions vraiment anciennes de HTML qui n'incluent pas de balise DOCTYPEmake <br>non-void, comme <br></br>.

En résumé: <br>ça va. D'autres sont également très bien.

Aravind Suresh
la source
2

Dans HTML5 la barre oblique n'est plus nécessaire: <br>,<hr>

harold ramos
la source
La barre oblique n'a jamais été nécessaire et n'a jamais été spécifiée dans une spécification HTML ni même utilisée comme exemple dans la spécification.
Rob
1
@Rob Je ne sais pas où vous obtenez vos spécifications HTML, mais je reçois les miennes des organisations WHATWG et W3C. Les deux publient des spécifications qui définissent clairement la stricte conformité XML en tant que fonctionnalité facultative de HTML5. Cela inclut spécifiquement la fermeture de balises uniques avec />. Voir les sections 8.1.2.1 et 2 . Et consultez le document HTML vs XHTML sur whatwg.org, et le balisage polyglotte W3C: un profil robuste du vocabulaire HTML5 au W3C.
Basil Bourque
@BasilBourque Veuillez lire les spécifications exactes de ces balises en HTML et ne pas faire apparaître XML ou XHTML qui ne sont pas le sujet ici. Vous ne trouverez jamais de mots écrits ou d'exemples dans une spécification de HTML dans l'histoire d'Internet où une barre oblique de fermeture est utilisée, requise ou même suggérée.
Rob
1
@Rob Tout ce que je peux faire, c'est répéter: le W3C a publié un document appelé HTML 5.2Section 8.1.2.1. Les balises de début indiquent clairement qu'une balise à fermeture automatique avec ou avec une barre oblique est valide, au point # 6: Ensuite, si l'élément est l'un des éléments vides, ou si l'élément est un élément étranger, il peut y avoir un seul U + 002F Caractère SOLIDUS (/). Ce caractère n'a aucun effet sur les éléments vides, mais sur les éléments étrangers, il marque la balise de début comme étant à fermeture automatique. Les autres documents que j'ai liés expliquent que si vous exprimez votre HTML5 en XML, la barre oblique est requise.
Basil Bourque
1
@BasilBourque Je n'ai jamais dit que ce n'était pas valide. J'ai dit que cela n'avait aucun sens et ne servait à rien, comme vous l'avez vous-même cité. Et, encore une fois, vous invoquez XML pour justifier son utilisation en HTML. Ne fais pas ça! Ce n'est pas la même chose! Nous appelons cela "soup soupe" lorsque l'analyseur HTML doit interpréter le contenu XML.
Rob
2

La plupart des cas en HTML, les balises sont en paire. Mais pour un saut de ligne, vous n'avez pas besoin d'une paire de balises. Par conséquent, pour indiquer cela, HTML utilise le <br/>format. <br/>est la bonne. Utilisez ce format.

<br>la balise n'a pas de balise de fin en HTML En XHTML, la <br>balise doit être correctement fermée, comme ceci:<br />

En XML, chaque balise doit être fermée. XHTML est une extension de XML, donc toutes les règles de XML doivent être suivies pour un XHTML valide. Par conséquent, même les balises vides (nœuds sans nœuds enfants)
devraient être fermées. XML a une forme courte appelée balises à fermeture automatique pour les nœuds vides. Tu peux écrire <br></br> as <br />. Par conséquent, en XHTML <br />est utilisé.

Le HTML est très indulgent à cet égard, et il n'y a pas une telle règle. Ainsi, en HTML, les nœuds vides comme <br> <hr> <meta>etc sont écrits sans la barre oblique de fermeture.

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/" />

Toutes les balises ne peuvent pas être fermées automatiquement. Par exemple, une balise comme <script src="jQuery.min.js" />n'est pas autorisée par la DTD XHTML.

Bhavin Solanki
la source
1

Ummm ..... quelqu'un connaît-il un seul fournisseur, agent utilisateur ou fabricant de navigateur qui a déjà suivi les spécifications du W3C à 100% ??? Donc, si HTML5 dit qu'il prend en charge les trois versions des éléments de rupture, vous pouvez parier que les fournisseurs prennent en charge les mêmes versions et encore plus bâclées!

La SEULE chose qui importe dans ce débat est d'utiliser systématiquement un codage qui suit également les spécifications XML ainsi que les spécifications HTML lorsque cela est possible. Cela signifie que vous devez utiliser la bonne version XML de la balise break et encourager toute votre équipe à faire de même:

<br />

Le même format barre oblique doit s'appliquer pour les balises img, a, hr et meta dans votre code. Pourquoi? Parce que:

  1. Il est rétrocompatible avec les anciens agents utilisateurs / navigateurs XHTML
  2. Les fournisseurs de navigateurs prennent en charge la version XML de toute façon, donc la spécification HTML5 est théorique.
  3. Les implémentations bâclées de la plupart des agents utilisateurs aujourd'hui, dans le passé et à l'avenir l'accepteront.
  4. Il permet à votre balisage d'être comparable aux normes XML si vous devez recommencer à créer des documents XHTML / XML à partir de votre balisage.
  5. C'est "une bonne pratique de codage" pour TOUS LES DÉVELOPPEURS WEB de continuer à utiliser des pratiques de balisage solides qui suivent XML, y compris le codage en minuscules, les attributs cités, les caractères XML échappés, etc. etc. Pourquoi? À l'avenir, si vous devez passer aux données XML, vous codez automatiquement et pensez en XML.
  6. Nous ne pouvons qu'espérer que dans le futur World Wide Web, nous nous éloignerons des normes mises en œuvre par des fournisseurs privés et reviendrons à un balisage solide, fiable et vérifié qui analyse plus rapidement, déplace les données sur les câbles plus rapidement et rend notre futur Internet plus standardisé support utilisant XML.

De plus, dans le monde robotique et de la machine qui est ici, où les robots n'ont pas les mêmes problèmes de codage d'interface humaine que HTML5 résout pour nous, ils seront ravis de revenir aux systèmes de données XML et d'analyser ces pages Web d'interface utilisateur beaucoup plus rapidement lors de leur conversion en XML Les données.

Stokely
la source
0


fonctionne très bien en HTML5. HTML5 laisse un peu plus de latitude que XHTML

Ben Mikola
la source
0

Si vous utilisez HTML5, alors utiliser <br>est la bonne voie à suivre :)

Mec de vol
la source
0

à la fois <br>et <br/>fonctionne mais il n'est pas nécessaire d'utiliser le second parce que HTML 5 prend également en charge la première syntaxe qui est si facile

Gad
la source
-3

<br>et <br />rendre le rendu différemment dans certains navigateurs, donc choisir l'un plutôt que l'autre ne nuira pas à votre projet, mais attendez-vous à une recherche en masse .. remplacer pour affecter le rendu de la page dans certains navigateurs, ce qui peut entraîner un travail supplémentaire pour vous-même ou même l'embarras si le changement n'affecte rien dans votre navigateur de test, mais le casse dans le navigateur préféré de vos clients.

Je préfère <br>car c'est ce que j'utilise depuis Erwise et Netscape Navigator (premiers navigateurs Web), mais il n'y a aucune raison de ne pas choisir à la <br />place. Il peut être utile pour certains prétraitements, comparabilité, etc.

Même si votre choix se résume à préférer l'apparence de l'un à l'autre, ou si vous (ou votre éditeur HTML préféré, par exemple Dreamweaver), vous aimeriez que votre code soit conforme au XML. C'est à vous.

Un petit mot:

À ne pas confondre avec br, mais en plus, vous pouvez également envisager d'utiliser des wbrbalises dans votre HTML: Une balise d'opportunité de saut de mot, qui spécifie où dans un texte il serait correct d'ajouter un saut de ligne.

Pour plus de lecture, veuillez lire la spécification HTML5 .

WonderWorker
la source
5
Voir la spécification HTML5 , qui indique clairement que "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) . ] " <br>, bien sûr, est un élément nul, comme vous pouvez le voir dans le lien dans la citation.
kevinji
-4

Les éléments sans balises de fin sont appelés balises vides. En html 4 et html 5, les balises de fin ne sont pas requises et peuvent être omises.

En xhtml, les balises sont si strictes. Cela signifie que doit commencer par la balise de début et se terminer par la balise de fin.

Mahesh Peri
la source
1
Incorrect. Une seule balise est tout aussi valide en HTML5 qu'une paire de balises de début et de fin. Voir la spécification HTML 5.2 .
Basil Bourque