web-dev-qa-db-fra.com

Balise de fin errante img

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?

11
Midhun Murali

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:

15
bodi0

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

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.

2
Jukka K. Korpela