HTML allows to omit certain start and/or end tags:
Certains types d'éléments HTML permettent aux auteurs omettent souvent les balises de fin (par exemple, le P
et LI
types d'éléments). Quelques types d'éléments permettent également d'omettre les balises de début; par exemple, HEAD
et BODY
. La DTD HTML indique pour chaque type d'élément si la balise de début et la balise de fin sont requises.
Si vous examinez une définition de type de document comme celui des HTML 4.01, les éléments sont déclarés avec le element declarations <!ELEMENT … >
. Et dans ces déclarations d'élément, deux caractères spécifient si la balise de début ou de fin d'un élément peut être omise. Voir la definition of P
par exemple:
<!ELEMENT P - O (%inline;)* -- paragraph -->
Voici le -
après le nom de l'élément P
indique que la balise de début est nécessaire et le O
indique que la balise de fin peut être omise. Un autre exemple, le HEAD
element:
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head -->
Voici les deux O
précisent que le début et la balise de fin peut être omis.
L'omission des deux balises sur les éléments n'est possible que si ces éléments sont implicites dans leur contexte. En cas de HEAD
, le modèle de contenu du parent element HTML
est spécifié comme suit:
<!ELEMENT HTML O O (%html.content;) -- document root element -->
Lorsque l'entité paramètre html.content est défini comme suit:
<!ENTITY % html.content "HEAD, BODY">
Cela signifie que le modèle de contenu de HTML
est implicitement défini comme HEAD
suivi de BODY
.
Vous pouvez jeter un oeil à la index of HTML 4.01 elements pour voir quelles étiquettes de quels éléments peuvent être omis.
La plupart des réponses ci-dessous (y compris la mienne) font référence au validateur HTML sur le site Web w3.org. Juste FWIW, méfiez-vous de valider HTML5 avec, le support HTML5 dans le validateur est encore "expérimental". Si cela dit que vous avez quelque chose de mal, vous le faites probablement (mais pas nécessairement); Mais ça peut bien rater des choses invalides ... –
C'est fou, le seul avantage que je peux voir est le "strip tags à la volée pour perdre des octets", à part ça c'est un gros morceau de désordre. – Ben
@Ben: D'accord. Habituez-vous, cependant, toutes sortes de choses sont facultatives à partir de HTML5 (comme la balise 'body', la balise fermante' html' ...). –