web-dev-qa-db-fra.com

Ai-je besoin d'un "/" à la fin d'une balise <img> ou <br>, etc.?

Avez-vous besoin d'un / à la fin d'une balise img? J'ai vu n exemple sur W3schools.com sans /:

<img src="smiley.gif" alt="Smiley face" height="42" width="42">

Je sais qu'il n'est pas nécessaire de fermer automatiquement la balise, au moins dans mon navigateur, mais dois-je le faire?

56
MarJamRob

Le / n'est requis que pour XHTML et XML.

Si vous utilisez un doctype HTML5, il n'est pas nécessaire de mettre fin aux balises à fermeture automatique de cette manière.

Ceci s'applique à <img src="img.png" />, <br />, <hr /> etc.

C'est à dire. Utilisez simplement <img src="img.png">, <br> et <hr>.

Si vous avez besoin d'un élément vide (comme un div), n'utilisez pas <div />, utilisez plutôt <div></div>. Ceci est important car en HTML5, la barre oblique est ignorée et <div /> est interprété comme <div> sans balise de fermeture.

81
Danny Beckett

Il n'est requis que pour les normes XHTML, comme mentionné dans d'autres réponses. CEPENDANT, il a également une autre utilité.

Certains éditeurs de code tels que Notepad ++ vous permettent d'agrandir/réduire les balises pour accélérer la visualisation. Mais si vous venez de mettre <img>, comment est-il supposé connaître la différence entre une balise ne nécessitant pas de balise de fin et une balise qui utilise le même nom de balise mais qui le fait (c'est-à-dire en XML)? Cela est particulièrement vrai si vous utilisez des balises personnalisées.

Par conséquent, en utilisant /> indique explicitement à l'éditeur qu'il se ferme automatiquement, ce qui lui permet de continuer à fonctionner correctement et de ne pas l'avertir d'une balise incompatible.

12

Mis à part le problème de validité, qui dépend simplement du doctype contre lequel vous validez, la barre oblique n'a vraiment d'importance que si votre page est servie avec un type de contenu XML, tel que application/xhtml+xml (qui est rarement utilisé, car les anciennes versions de IE s'étouffent dessus).

Si vous faites cela, la gestion des erreurs bien formée est draconienne: toute erreur (telle qu'une balise de début sans balise de fin correspondante, qui peut être la balise de début elle-même lorsque le <img ... /> la syntaxe est utilisée) empêche la page d'être affichée du tout, et à la place un message d'erreur est affiché.

5
Jukka K. Korpela

Je pense qu'il serait préférable de fermer la balise img. Du haut de ma tête, je peux penser à 2 raisons:

  1. Il ne sera pas validé sous xhtml, si vous vous souciez de ce genre de chose.

  2. Tout/toute personne essayant de travailler avec lui par programmation peut être confus/rencontrer des problèmes concernant les balises non fermées. Qui sait, cela pourrait vous inclure à l'avenir. :)

3
mitim

Le code est acceptable en html sans utiliser / mais il est requis en XHTML. Je préfère mettre / on pour qu'il n'y ait aucun problème à migrer de HTML vers XHTML

3
Snippet