Pourquoi le code suivant est-il valide lorsque j'utilise un <div>
à l'intérieur d'un <li>
?
<ul>
<li class="aschild">
<div class="nav">Test</div>
</li>
</ul>
Oui, vous pouvez utiliser un div à l'intérieur d'un li et il sera validé.
<!ELEMENT li %Flow;>
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
<!ENTITY % block "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
À l'intérieur d'un <li>
vous pouvez avoir tout ce que vous pourriez naturellement mettre dans un <div>
. Ils ne sont pas différents en ce sens.
Il devrait également être valide en HTML4, XHTML et HTML5.
Ceci est PAS valide (donc les sources que vous avez trouvées sur "pas de divs dans les listes" pourraient faire référence à cette situation):
<ul>
<li></li>
<div></div>
<li></li>
</ul>
So: Les listes (ul
, ol
) ne peuvent avoir que li
comme enfants. Mais li
peuvent avoir n'importe quoi comme leurs enfants.
Car <li>
est un élément de bloc, pas un élément en ligne comme <span>
ou <a>
.
Un <li>
est un élément de bloc et fonctionnera parfaitement avec d'autres éléments de bloc à l'intérieur.
Oui, vous pouvez. Autant que tu veux.