Une balise tag doit toujours être fermée par le symbole de fermeture de balise >
(si nous ignorons certaines règles SGML qui s'appliquent nominalement dans le HTML non-XHTML mais n'ont jamais été implémentées dans les navigateurs).
Ce que vous voulez dire, c'est que les éléments doivent être fermés par des balises de fin. La réponse est que dans le HTML non-XHTML (y compris HTML5 en sérialisation HTML), aucune balise de fin n'est requise ou autorisée pour les éléments meta
et lien
. En pratique, cependant, les navigateurs ignorent simplement les balises de fin explicites pour eux, ainsi que le /
avant >
, si vous les utilisez. Et HTML5 rend cette permissivité une règle en permettant même officiellement le /
en sérialisation HTML, aussi.
En XHTML, les règles XML s'appliquent, donc chaque élément, sans exception, doit avoir à la fois une balise de début et une balise de fin, mais la même balise peut être utilisée pour les deux rôles si le contenu de l'élément est vide, par exemple comme abréviation de . Si vous enfreignez cela en servant un document avec un type de contenu XML (XHTML) à un navigateur conforme, alors votre document n'est pas du tout affiché ; un message d'erreur est affiché à la place.
Lorsque vous utilisez un serveur XHTML avec le type de contenu HTML (Content-Type: text/html
), comme les documents XHTML le sont presque toujours sur le web, alors les navigateurs appliqueront en réalité les règles du HTML non-XHTML.
Pour résumer :
- normalement, utilisez simplement sans
/
- si vous utilisez vraiment XHTML dans un contexte où l'analyse XHTML est réellement appliquée, respectez les règles XML (et assurez-vous de les connaître)
- si votre patron vous dit d'écrire , faites-le ; ce n'est pas utile, mais cela ne cause aucun dommage (sauf si vous essayez de valider par exemple contre la doctype HTML 4.01).