143 votes

Comment fermer correctement la balise <img> ?

<img src='stackoverflow.png'>
<img src='stackoverflow.png'></img>
<img src='stackoverflow.png' />

Lequel ou lesquels d'entre eux sont corrects ?

10 votes

La question est "Comment fermer correctement une balise <img> ?". C'est une vraie question, et les réponses sont utiles. Cette question n'aurait pas dû être fermée.

4 votes

La question, actuellement, est bien. Elle est no ambiguë, vague, incomplète, trop large ou rhétorique. Il y a également une excellente réponse ci-dessous.

0 votes

Je ne sais pas laquelle des réponses suivantes est correcte, mais il est intéressant de noter que l'inspecteur de code de Firefox ajoute le </img>à la fin de la balise si vous ne le mettez pas là. Et IE ne le fait pas. C'est significatif dans mon univers.

2voto

AmateurD Points 31

Il est utile d'avoir la balise de fermeture si vous essayez un jour de le lire avec un analyseur XHTML. C'est peut-être un cas limite, mais je le fais tout le temps. Cela ne fait pas de mal de l'avoir, et cela signifie que je sais que nous pouvons utiliser un ensemble de lecteurs XML qui ne s'effondreront pas lorsqu'ils rencontreront une balise non fermée.

Si vous n'essayez jamais d'analyser le contenu, ignorez la fermeture.

1voto

PLB Points 259

-La balise est vide et ne contient que des attributs. -La balise n'a pas de balise 'Closing'.

Donc,

<img src='stackoverflow.png'>
<img src='stackoverflow.png' />

Les deux sont corrects en HTML5 également.

0 votes

En premier est correct ! La seconde n'est autorisée que pour des raisons historiques. (Compatibilité avec l'utilisation du XHTML/XML dans les sites web plus anciens, qui s'effondrerait si les navigateurs ne l'autorisaient pas).

0voto

Malheureusement, les solutions ci-dessus n'ont pas fonctionné dans mon cas - peut-être parce que j'ai placé le bouton à l'intérieur d'une étiquette de formulaire. Ce code ...

<input class="button" type="submit" value=" ">
    <img src="../assets/logo.png" alt="test" />
</input>

... conduit toujours à une erreur (avec ou sans le slash de fermeture de la balise img) :

error  Parsing error: x-invalid-end-tag  vue/no-parsing-error

✖ 1 problem (1 error, 0 warnings)

Une sorte de solution de contournement qui a fonctionné consistait à définir l'image comme image de fond au moyen de css.

L'extrait html décrit uniquement le bouton. L'attribut value contient un seul blanc afin d'éviter que certains navigateurs ne présentent un texte par défaut indésirable.

<input class="button" type="submit" value=" " />

le CSS définit l'image d'arrière-plan du bouton :

.button {
  display: block;
  width: 6em;
  height: 6em;
  color: white;
  background-color: #639f59;
  padding: 0.4em 1.2em;
  box-shadow: inset 0 -0.6em 1em -0.35em rgba(5, 122, 11, 0.30),
    inset 0 0.6em 2em -0.3em rgba(255, 255, 255, 0.30),
    inset 0 0 0em 0.05em rgba(255, 255, 255, 0.30);
  cursor: pointer;
  background: url("../assets/logo.png") ;
  background-repeat: no-repeat;
  background-size: 6em;
  background-position: center;
  border: 0;
  border-radius: 3em;
}

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