Lors de la validation du balisage via le service de validation du W3C, cette erreur ci-dessous s'est produite
Balise de fin errante img
Le code est comme ci-dessous
<a title="text" href="url">
<img class="text" src="imgSrc" alt="Text"></img>
</a>
Qu'est-ce que ça veut dire ? Comment pouvons-nous l'éviter?
Si votre document est compatible XHTML, vous devez fermer la balise img
avec <img src="image.jpg"/>
, pas avec <img>...</img>
.
Si votre document est compatible HTML5, vous n'avez pas besoin du />
partie, utilisez uniquement <img src="image.jpg">
Et si vous vous demandez ce que signifie que le document doit être compatible XHTML ou HTML5 - il s'agit de la toute première ligne de votre page HTML, ce qu'on appelle document type definition
:
<!DOCTYPE HTML>
pour HTML5 et
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
pour XHTML 1.0 Transitional
REMARQUE: Le <!DOCTYPE>
la déclaration est obligatoire (si vous voulez que vos pages soient validées avec un validateur HTML) et devrait toujours être la première chose dans un document HTML.
REMARQUE: Bien qu'une définition de type de document ne soit pas techniquement requise pour une page Web fonctionnelle, il est recommandé de toujours l'inclure dans votre code. Lorsque vous apprenez à créer des pages Web, prenez l'habitude de toujours inclure la définition du type de document dans votre code.
Plus de lecture:
Fondamentalement, cela signifie que vous devez supprimer le </img>
, car il n'est pas nécessaire pour le <img>
tag:
<img class="text" src="imgSrc" alt="Text">
Alternativement, juste à des fins de référence, il y a aussi la façon XHTML de "fermer" la balise:
<img class="text" src="imgSrc" alt="Text" />
En tant que tel, "Stray end tag ..." signifie simplement qu'une balise de fin n'est pas autorisée dans le contexte où elle apparaît. Comme l'explique le validateur: "Le validateur a trouvé une balise de fin pour l'élément ci-dessus, mais cet élément n'est pas actuellement ouvert. Cela est souvent causé par une balise de fin restante d'un élément qui a été supprimé lors de la modification, ou par un élément implicitement fermé (si vous avez une erreur liée à un élément utilisé où il n'est pas autorisé, c'est presque certainement le cas). Dans ce dernier cas, cette erreur disparaîtra dès que vous aurez résolu le problème d'origine. "
À partir des symptômes (la chaîne de message d'erreur), nous pouvons déduire que vous validez par rapport à HTML5 dans la sérialisation HTML. Cela signifie qu'aucune balise de fin n'est autorisée pour un élément img
, car la balise de début est traitée comme fermant également l'élément ("élément implicitement fermé").
Ainsi, la solution consiste à supprimer le </img>
tag ou pour valider par rapport à HTML5 dans la sérialisation XHTML. Ce dernier n'est pas pratique pour les pages Web, mais si vous utilisez HTML pour autre chose, vous devez valider par URL en faisant référence à une ressource qui est servie avec un type de contenu XML.