web-dev-qa-db-fra.com

Quelles sont les balises autorisées dans un <li>?

Je cherchais la liste des tags disponibles dans un <li>, mais je n'ai trouvé aucune référence.

Est-il possible que des éléments de bloc HTML 4+ conformes aux normes y soient autorisés?

122
petsagouris

TL; DR : un <li> peut contenir n’importe quel élément valide dans <body>.

Dans le spécification HTML 4.01 pour les listes , vous trouverez l'extrait correspondant de la DTD:

<!ELEMENT LI - O (%flow;)* -- list item -->

Ceci spécifie qu'un <li> peut contenir contenu du flux , qui est la collection de tous les éléments bloc et en ligne .

Le spec HTML5 pour un <li> est le même en ce sens qu'il autorise également tout contenu du flux .

187
RoToRa

C'est un élément de niveau bloc, donc tout y passe. Les problèmes ne surviennent que lorsque vous insérez des éléments de niveau bloc dans des éléments en ligne.

7
Scott Brown

Ouais, à peu près. Vous pouvez avoir des listes dans des listes (soit à l'intérieur du <li> ou juste en vrac à l'intérieur du <ol>/<ul> la liste interne doit être à l'intérieur d'un <li>), éléments de bloc et éléments en ligne.

Pour moi, cela n'aurait aucun sens de mettre un <table> à l'intérieur d'un <li>, mais même cela reste valable.

4
Nathan MacInnes

Vous pouvez utiliser le service de validation des balises du W3C pour tester votre cas et savoir si votre balise est valide ou non.

Ce validateur vérifie la validité du balisage des documents Web en HTML, XHTML, SMIL, MathML, etc.

1
Sarfraz