2010-07-23 5 views
1

Ceci est juste une question sur les commentaires à l'intérieur d'une page HTML.Pourquoi le validateur HTML me donne-t-il une erreur à propos de ce commentaire HTML?

Par exemple:

<html> 
    <head></head> 
    <body> 
    <!-- 
    <p><font size="4">--</font></p> 
    --> 
    </body> 
</html> 

En utilisant http://validator.w3.org/check je reçois le message d'erreur suivant. Est-ce que ça fait du sens?

ligne 6, colonne 21: déclaration de commentaire invalide: caractère trouvé « < » commentaire à l'extérieur mais à l'intérieur commentaire déclaration

<p><font size="4">--</font></p>

Vérifiez que vous utilisez une syntaxe correcte pour vos commentaires, par exemple: . Cette erreur peut apparaître si vous oubliez le dernier "-" pour fermer un commentaire et en ouvrir un autre plus tard.

+2

Si la validation est aussi stricte que pour XML, le "-" n'est pas autorisé dans un commentaire de type SGML. Suce, mais le changer pour n'importe quoi d'autre fonctionne bien. – scunliffe

Répondre

1

Il semble que la chaîne -- n'est pas autorisée dans les commentaires HTML.

7

Oui, c'est logique.

Pour comprendre le message d'erreur, vous devez comprendre la balise de commentaire. Il se compose de trois parties principales, le <! qui démarre le tag, le -- qui commence et se termine le commentaire, et le > qui termine le tag.

Lorsque vous placez -- dans le texte d'un commentaire, vous terminez la partie de commentaire. Le reste du texte jusqu'à la fin de la balise n'est pas valide, car il ne s'agit pas d'un commentaire et vous ne pouvez ajouter que des commentaires à l'intérieur de la balise de commentaire.

Vous pouvez aussi avoir plus d'un commentaire dans le tag:

<!-- comment -- -- another comment --> 
+0

Ok, ça a du sens maintenant! Je ne savais pas que l'étiquette de commentaire avait 3 parties. Merci. – sanjosep43

1

Non, il ne intuitivement pas de sens pour la plupart des humains de la pensée logique, mais le validateur a vraiment raison. Le -- indique un délimiteur de commentaire. Voir aussi W3 validator bug 5555:

oui, vraiment invalide. - est un délimiteur de commentaire en XML.

0

Je pense qu'il est confondu par les deux traits d'union au milieu. Ceux en> - <.

Si vous devez avoir ceux-ci, vous pouvez peut-être remplacer le caractère d'échappement&#45; pour eux.

Questions connexes