Ce soir, j'ai le grand honneur de vous annoncer que vous vous coucherez moins bêtes ! Cela induit deux conditions sous-jacentes à cette affirmation : il faut que vous lisiez la suite de cet article ET que vous couchiez par la suite.
Dames et damoiseaux de tous horizons, j'ai l'incommensurable honneur d'espérer vous apprendre quelque chose concernant ce fabuleux langage qu'est le HTML. Si ce n'est pas le cas, GTFO.
Une insoutenable vérité
<!-- je suis un commentaire HTML -->
Oui je sais, ça fait un choc. Vous pouvez reprendre votre souffle deux minutes puis reprendre le cours de cette lecture forte passionnante.
Bon OK, c'est un commentaire, et alors ? Et bien ce commentaire a la particularité d'être valide. Oui, cela signifiant qu'il ne devrait pas générer de bugs sous tous les navigateurs dignes de ce nom. Car aussi über-étonnant que cela puisse paraître, il existe des commentaires HTML qui ne sont pas valides, tellement fourbes et méchants qu'il peuvent faire disparaître la moitié de votre site tout en vous faisant tourner en bourrique pendant 30 minutes minimum avant que vous ne découvriez le problème.
<!-- je ne suis pas un commentaire HTML valide -- et je vous emmerde -->
Mais comment se faisse(bouc) ? Il a l'air si mignon comme ça, on lui donnerait le bon dieu sans confession, et pourtant il est autant apprécié par le Validator du W3C que Michael Jackson dans une garderie d'enfants. Essayez de mettre cet immondice de caractères ASCII au milieu d'une page et il la seconde moitié du texte disparaîtra. C'est rarement un effet voulu.
Tiret nuit gravement à la santé
Nos amis de Godzilla et du W3C ont bien remarqué le problème, mais se contentent d'un ridicule "faut pas mettre des tirets dans un commentaire HTML", sans aucune autre explication. Autant donner de la dynamite instable à parkinsonien en lui demandant de ne pas bouger. C'est pour cela que le code précédent, qui contient "--" en son sein, n'est pas valide.
Après un travail d'investigation de longue haleine fraîche hollywood chewing-gum, je suis en mesure de vous expliquer le pourquoi du comment t'inquiète j't'apprends à vivre wesh wesh. Pour cela, il vous faudra un effort de concentration -- 2 milligrammes par litre seulement.
La vérité est ailleurs. Juste en dessous en fait.
Il s'avère, selon ce site (je cite mes sources) qu'un commentaire HTML se découpe en réalité en plusieurs parties.
"<!
" et ">
"
... marquent le début et la fin d'un groupe de commentaires HTML. Ainsi, le code
<!>
est valide, quoiqu'il ne contienne pas de commentaire à proprement parler. Donc il ne sert à rien.Un élément commentaire, situé entre les deux balises précédemment citées, s'écrit de la sorte :
-- je suis un commentaire nu :S --
Un commentaire début et s'achève toujours par un couple de tirets inséparables. Un commentaire "nu" ne DOIT PAS contenir de double tirets. Sinon il n'est pas possible de le délimiter, vous l'aurez compris. Non ? Die noob.
Cela étant dit, on peut parfaitement écrire ce genre de choses dans vos programmes...
<!-- Force bleue ! -- -- Force rouge !-->
... mais vous aurez forcément l'air bête. Abstenez-vous.
Si les commentaires internes se multiplient, voici une astuce pour vous y retrouver : le nombre de tirets (liés) dans un bloc commentaire HTML est toujours un multiple de quatre. Étonnant, non ?
Je connais et pratique le HTML depuis plus de 13 ans maintenant et je n'ai découvert ceci qu'aujourd'hui, grâce à l'un de ses bugs venus d'on-ne-sait-où dont j'ai le secret.
Encore une victoire de canard.