Los documentos W3 tienen un ejemplo de lista anidada con el prefijo DEPRECATED EXAMPLE:
, pero nunca lo corrigieron con un ejemplo no obsoleto, ni explicaron exactamente qué está mal con el ejemplo.
Entonces, ¿cuál de estas formas es la forma correcta de escribir una lista HTML?
Opción 1 : el anidado <ul>
es hijo del padre<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>
Opción 2 : el anidado <ul>
es hijo del <li>
que pertenece
<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>
fuente
opcion 2
Listas de anidamiento - UL
fuente
La opción 2 es correcta: el anidado
<ul>
es un hijo del<li>
que pertenece.Correcto:
<ul>
como hijo de<li>
La forma correcta de hacer una lista anidada de HTML es con el anidado
<ul>
como hijo del<li>
al que pertenece. La lista anidada debe estar dentro del<li>
elemento de la lista en la que está anidada.Estándar del W3C para listas de anidamiento
Un elemento de la lista puede contener otra lista completa; esto se conoce como "anidar" una lista. Es útil para cosas como tablas de contenido, como la que se encuentra al comienzo de este artículo:
La clave para anidar listas es recordar que la lista anidada debe relacionarse con un elemento de lista específico. Para reflejar eso en el código, la lista anidada está contenida dentro de ese elemento de la lista. El código de la lista anterior se parece a esto:
Tenga en cuenta cómo la lista anidada comienza después de
<li>
y el texto del elemento de la lista que lo contiene ("Capítulo uno"); luego termina antes del</li>
del elemento de la lista que lo contiene. Las listas anidadas a menudo forman la base de los menús de navegación del sitio web, ya que son una buena forma de definir la estructura jerárquica del sitio web.Teóricamente, puede anidar tantas listas como desee, aunque en la práctica puede ser confuso anidar las listas demasiado profundamente. Para listas muy grandes, es mejor dividir el contenido en varias listas con encabezados, o incluso dividirlo en páginas separadas.
fuente
Si valida, la opción 1 aparece como un error en html 5, por lo que la opción 2 es correcta.
fuente
Prefiero la opción dos porque muestra claramente el elemento de la lista como el poseedor de esa lista anidada. Siempre me inclinaría por el HTML semántico.
fuente
¿Has pensado en usar el TAG "dt" en lugar de "ul" para las listas de anidamiento? Su estilo y estructura heredados le permiten tener un título por sección y tabula automáticamente el contenido que entra.
VS
fuente
dt
/dd
que están emparejadas. Además, el estilo inherente (y la tabulación, sospecho) simplemente proviene de la hoja de estilo predeterminada del navegador, por lo que eso no dice mucho. Lo trataría como un elemento semántico; si tiene una lista de definiciones, o tal vez si solo tiene pares de datos de título / descripción, adl
podría ser una buena opción.Lo que no se menciona aquí es que la opción 1 le permite anidar de forma arbitraria y profunda las listas.
Esto no debería importar si controla el contenido / css, pero si está haciendo un editor de texto enriquecido, es útil.
Por ejemplo, gmail, inbox y evernote permiten crear listas como esta:
Con la opción 2 no puede hacerlo (tendrá un elemento de lista adicional), con la opción 1, puede hacerlo.
fuente