Les documents W3 ont un exemple de liste imbriquée préfixé parDEPRECATED EXAMPLE:
, mais ils ne l'ont jamais corrigé avec un exemple non obsolète, ni expliqué exactement ce qui ne va pas avec l'exemple.
Alors, laquelle de ces façons est la bonne façon d'écrire une liste HTML?
Option 1 : l'imbriqué <ul>
est un enfant du parent<ul>
<ul>
<li>List item one</li>
<li>List item two with subitems:</li>
<ul>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ul>
<li>Final list item</li>
</ul>
Option 2 : l'emboîtement <ul>
est un enfant de l' <li>
appartenance
<ul>
<li>List item one</li>
<li>List item two with subitems:
<ul>
<li>Subitem 1</li>
<li>Subitem 2</li>
</ul>
</li>
<li>Final list item</li>
</ul>
la source
Option 2
Listes d'imbrication - UL
la source
L'option 2 est correcte: l'imbriqué
<ul>
est un enfant de<li>
celui auquel il appartient.Correct: en
<ul>
tant qu'enfant de<li>
La bonne façon de créer une liste imbriquée HTML consiste à l'imbriquer en
<ul>
tant qu'enfant du<li>
auquel il appartient. La liste imbriquée doit se trouver à l'intérieur de l'<li>
élément de la liste dans laquelle elle est imbriquée.Norme W3C pour les listes d'imbrication
Un élément de liste peut contenir une autre liste entière - c'est ce qu'on appelle «imbriquer» une liste. Il est utile pour des choses comme les tables des matières, comme celle au début de cet article:
La clé de l'imbrication de listes est de se rappeler que la liste imbriquée doit se rapporter à un élément de liste spécifique. Pour refléter cela dans le code, la liste imbriquée est contenue dans cet élément de liste. Le code de la liste ci-dessus ressemble à ceci:
Notez comment la liste imbriquée commence après le
<li>
et le texte de l'élément de liste contenant («Chapitre un»); puis se termine avant le</li>
de l'élément de liste contenant. Les listes imbriquées constituent souvent la base des menus de navigation du site Web, car elles constituent un bon moyen de définir la structure hiérarchique du site Web.Théoriquement, vous pouvez imbriquer autant de listes que vous le souhaitez, bien qu'en pratique, il peut devenir déroutant d'imbriquer les listes trop profondément. Pour les très grandes listes, il est préférable de diviser le contenu en plusieurs listes avec des en-têtes, ou même de le diviser en pages distinctes.
la source
Si vous validez, l'option 1 apparaît comme une erreur en html 5, donc l'option 2 est correcte.
la source
Je préfère l'option deux car elle montre clairement l'élément de liste en tant que possesseur de cette liste imbriquée. Je pencherais toujours vers un HTML sémantiquement sain.
la source
Avez-vous pensé à utiliser le TAG "dt" au lieu de "ul" pour les listes d'imbrication? Son style et sa structure hérités vous permettent d'avoir un titre par section et il tabule automatiquement le contenu qui s'y trouve.
CONTRE
la source
dt
/dd
qui sont couplées. De plus, le style inhérent (et la tabulation, je suppose) vient simplement de la feuille de style du navigateur par défaut, donc cela ne dit pas grand-chose. Je le traiterais comme un élément sémantique; si vous avez une liste de définitions, ou peut-être si vous n'avez que des paires de données titre / description, undl
pourrait être un bon choix.Ce qui n'est pas mentionné ici, c'est que l'option 1 vous permet une imbrication arbitraire en profondeur des listes.
Cela ne devrait pas avoir d'importance si vous contrôlez le contenu / css, mais si vous créez un éditeur de texte riche, il est très pratique.
Par exemple, gmail, boîte de réception et evernote permettent tous de créer des listes comme celle-ci:
Avec l'option 2, vous ne pouvez pas le faire (vous aurez un élément de liste supplémentaire), avec l'option 1, vous le pouvez.
la source