Listas

Intermedio
HTML
HTML
Actualizado: 26/08/2025

Listas ordenadas y no ordenadas

Las listas son elementos fundamentales en HTML que nos permiten organizar información de manera estructurada y clara. HTML proporciona dos tipos principales de listas: las listas no ordenadas para elementos sin una secuencia específica y las listas ordenadas para elementos que siguen un orden determinado.

Listas no ordenadas

Las listas no ordenadas utilizan la etiqueta <ul> (unordered list) como contenedor principal. Cada elemento de la lista se define con la etiqueta <li> (list item). Este tipo de lista es ideal cuando queremos presentar información donde el orden no importa, como una lista de características o ingredientes.

<ul>
  <li>Manzanas</li>
  <li>Plátanos</li>
  <li>Naranjas</li>
  <li>Fresas</li>
</ul>

Los navegadores muestran por defecto cada elemento con una viñeta (bullet point) que puede variar según el navegador. La estructura debe ser siempre la misma: la etiqueta <ul> actúa como contenedor y solo puede contener directamente elementos <li>.

Ejemplo práctico con contenido más complejo:

<ul>
  <li>Revisar el correo electrónico</li>
  <li>Preparar la presentación para la reunión</li>
  <li>Llamar al cliente sobre el proyecto</li>
  <li>Actualizar la documentación técnica</li>
</ul>

Listas ordenadas

Las listas ordenadas emplean la etiqueta <ol> (ordered list) y también utilizan <li> para cada elemento. La diferencia principal es que los navegadores numeran automáticamente cada elemento, lo que las hace perfectas para procesos paso a paso, rankings o cualquier información secuencial.

<ol>
  <li>Abrir el navegador web</li>
  <li>Escribir la URL en la barra de direcciones</li>
  <li>Presionar Enter para cargar la página</li>
  <li>Navegar por el contenido del sitio</li>
</ol>

El navegador se encarga automáticamente de la numeración, comenzando por 1 y continuando secuencialmente. Esto significa que si añadimos o eliminamos elementos, la numeración se ajusta automáticamente.

Atributos útiles para listas ordenadas

Las listas ordenadas admiten varios atributos que modifican su comportamiento:

El atributo start permite cambiar el número inicial:

<ol start="5">
  <li>Quinto paso del proceso</li>
  <li>Sexto paso del proceso</li>
  <li>Séptimo paso del proceso</li>
</ol>

El atributo type cambia el estilo de numeración:

<!-- Numeración con letras minúsculas -->
<ol type="a">
  <li>Primera opción</li>
  <li>Segunda opción</li>
  <li>Tercera opción</li>
</ol>

<!-- Numeración con números romanos -->
<ol type="I">
  <li>Introducción</li>
  <li>Desarrollo</li>
  <li>Conclusión</li>
</ol>

Los valores disponibles para type incluyen:

  • 1 (números, por defecto)
  • A (letras mayúsculas)
  • a (letras minúsculas)
  • I (números romanos mayúsculas)
  • i (números romanos minúsculas)

Contenido dentro de elementos de lista

Cada elemento <li> puede contener no solo texto simple, sino también otros elementos HTML como enlaces, texto formateado o imágenes:

<ul>
  <li><strong>Página principal:</strong> Información general de la empresa</li>
  <li><strong>Productos:</strong> Catálogo completo de servicios</li>
  <li><strong>Contacto:</strong> <a href="mailto:info@empresa.com">info@empresa.com</a></li>
</ul>

Cuándo usar cada tipo de lista

La elección entre listas ordenadas y no ordenadas depende del contexto:

Usa listas no ordenadas (<ul>) para:

  • Listas de características de un producto
  • Menús de navegación
  • Elementos donde el orden no importa
  • Ventajas o beneficios

Usa listas ordenadas (<ol>) para:

  • Instrucciones paso a paso
  • Rankings o clasificaciones
  • Procesos secuenciales
  • Cronologías

La correcta utilización de estos elementos mejora la accesibilidad del contenido, ya que los lectores de pantalla pueden identificar y navegar por las listas de manera más eficiente, proporcionando una mejor experiencia a todos los usuarios.

Listas de definición

Las listas de definición representan un tipo especial de lista en HTML que asocia términos con sus descripciones correspondientes. Este elemento resulta especialmente útil cuando necesitamos presentar información en formato de diccionario, glosarios, preguntas frecuentes o cualquier contenido donde tengamos pares término-definición.

Estructura básica

Una lista de definición utiliza tres etiquetas específicas que trabajan en conjunto:

  • <dl> (definition list): El contenedor principal de la lista
  • <dt> (definition term): Define el término o concepto
  • <dd> (definition description): Proporciona la descripción o definición del término
<dl>
  <dt>HTML</dt>
  <dd>Lenguaje de marcado utilizado para crear páginas web</dd>
  
  <dt>CSS</dt>
  <dd>Lenguaje de hojas de estilo para diseñar la presentación visual</dd>
  
  <dt>JavaScript</dt>
  <dd>Lenguaje de programación para añadir interactividad a las páginas</dd>
</dl>

Flexibilidad en la estructura

Las listas de definición ofrecen gran flexibilidad en su estructura. Un término puede tener múltiples definiciones, o varios términos pueden compartir una misma definición:

Un término con múltiples definiciones:

<dl>
  <dt>Navegador</dt>
  <dd>Programa que permite visualizar páginas web</dd>
  <dd>Aplicación que interpreta código HTML, CSS y JavaScript</dd>
  <dd>Software que gestiona la comunicación entre el usuario e internet</dd>
</dl>

Múltiples términos con una definición compartida:

<dl>
  <dt>Firefox</dt>
  <dt>Chrome</dt>
  <dt>Safari</dt>
  <dd>Navegadores web populares para acceder a sitios de internet</dd>
</dl>

Casos de uso prácticos

Las listas de definición son ideales para diversos contextos profesionales:

Glosario técnico:

<dl>
  <dt>API</dt>
  <dd>Interfaz de programación de aplicaciones que permite la comunicación entre diferentes software</dd>
  
  <dt>Framework</dt>
  <dd>Estructura conceptual y tecnológica que sirve de base para el desarrollo de software</dd>
  
  <dt>Responsive Design</dt>
  <dd>Técnica de diseño web que adapta la interfaz a diferentes tamaños de pantalla</dd>
</dl>

Preguntas frecuentes:

<dl>
  <dt>¿Cómo puedo cambiar mi contraseña?</dt>
  <dd>Accede a tu perfil, selecciona "Configuración" y haz clic en "Cambiar contraseña"</dd>
  
  <dt>¿Puedo cancelar mi suscripción en cualquier momento?</dt>
  <dd>Sí, puedes cancelar tu suscripción desde la sección "Facturación" de tu cuenta</dd>
</dl>

Contenido enriquecido en definiciones

Los elementos <dd> pueden contener contenido complejo, incluyendo párrafos, enlaces, listas anidadas o cualquier otro elemento HTML:

<dl>
  <dt>Desarrollo Frontend</dt>
  <dd>
    <p>Área de desarrollo web que se enfoca en la <strong>interfaz de usuario</strong>.</p>
    <p>Tecnologías principales:</p>
    <ul>
      <li>HTML para la estructura</li>
      <li>CSS para el diseño</li>
      <li>JavaScript para la interactividad</li>
    </ul>
  </dd>
  
  <dt>Más información</dt>
  <dd>Visita nuestro <a href="/guia-frontend">tutorial completo</a> para aprender más</dd>
</dl>

Ventajas semánticas

Las listas de definición proporcionan valor semántico claro al contenido. Los navegadores y tecnologías de asistencia pueden identificar la relación entre términos y definiciones, mejorando la accesibilidad. Los motores de búsqueda también comprenden mejor la estructura del contenido cuando utilizamos estos elementos apropiadamente.

Ejemplo de contactos empresariales:

<dl>
  <dt>Director General</dt>
  <dd>María García - <a href="mailto:direccion@empresa.com">direccion@empresa.com</a></dd>
  
  <dt>Departamento Técnico</dt>
  <dd>Juan Pérez - Ext. 1234</dd>
  <dd>Ana López - Ext. 1235</dd>
  
  <dt>Horario de atención</dt>
  <dd>Lunes a viernes de 9:00 a 18:00</dd>
</dl>

Diferencias con otras listas

A diferencia de las listas ordenadas y no ordenadas que presentan elementos de manera secuencial, las listas de definición establecen relaciones específicas entre conceptos. No utilizan viñetas ni numeración automática, sino que crean una estructura visual donde los términos se distinguen claramente de sus descripciones.

Esta característica hace que las listas de definición sean la opción correcta cuando necesitamos mostrar información estructurada en pares, donde cada elemento tiene un significado específico y una explicación correspondiente.

Listas anidadas

Las listas anidadas permiten crear estructuras jerárquicas complejas colocando una lista completa dentro de un elemento de otra lista. Esta técnica es fundamental para representar información con múltiples niveles de profundidad, como menús de navegación con submenús, índices de contenido detallados o estructuras organizacionales.

Concepto y estructura básica

Una lista anidada se crea insertando una lista completa (<ul> o <ol> con sus respectivos <li>) dentro de un elemento <li> de una lista padre. La lista anidada debe colocarse dentro del elemento de lista, no como hermano del mismo.

<ul>
  <li>Desarrollo web
    <ul>
      <li>Frontend</li>
      <li>Backend</li>
      <li>Full Stack</li>
    </ul>
  </li>
  <li>Diseño gráfico</li>
  <li>Marketing digital</li>
</ul>

En este ejemplo, la lista interior se encuentra completamente contenida dentro del primer elemento <li>, creando una jerarquía visual clara donde "Frontend", "Backend" y "Full Stack" son subcategorías de "Desarrollo web".

Combinación de tipos de lista

Las listas anidadas ofrecen flexibilidad total en la combinación de tipos. Podemos anidar listas ordenadas dentro de no ordenadas y viceversa, según las necesidades del contenido:

<ol>
  <li>Configuración inicial
    <ul>
      <li>Descargar el software</li>
      <li>Crear cuenta de usuario</li>
      <li>Verificar instalación</li>
    </ul>
  </li>
  <li>Configuración avanzada
    <ul>
      <li>Personalizar interfaz</li>
      <li>Configurar plugins</li>
    </ul>
  </li>
  <li>Uso diario del programa</li>
</ol>

Esta estructura muestra un proceso ordenado principal donde cada paso puede contener subtareas que no requieren orden específico.

Múltiples niveles de anidación

HTML permite crear jerarquías profundas con múltiples niveles de anidación, aunque se recomienda no exceder tres o cuatro niveles para mantener la legibilidad:

<ul>
  <li>Programación
    <ul>
      <li>Lenguajes
        <ul>
          <li>JavaScript
            <ul>
              <li>Frameworks</li>
              <li>Librerías</li>
            </ul>
          </li>
          <li>Python</li>
          <li>Java</li>
        </ul>
      </li>
      <li>Bases de datos</li>
    </ul>
  </li>
  <li>Diseño web</li>
</ul>

Estructura de navegación práctica

Un caso común para listas anidadas es la creación de menús de navegación con submenús. Esta estructura proporciona una base semántica sólida para sistemas de navegación web:

<ul>
  <li>Productos
    <ul>
      <li>Software empresarial
        <ul>
          <li>Gestión de proyectos</li>
          <li>Control de inventario</li>
          <li>Facturación</li>
        </ul>
      </li>
      <li>Aplicaciones móviles</li>
      <li>Consultoría</li>
    </ul>
  </li>
  <li>Servicios
    <ul>
      <li>Soporte técnico</li>
      <li>Formación</li>
    </ul>
  </li>
  <li>Contacto</li>
</ul>

Índices y tablas de contenido

Las listas anidadas son ideales para crear índices detallados que reflejen la estructura de documentos o sitios web complejos:

<ol>
  <li>Introducción a HTML
    <ol>
      <li>Historia del lenguaje</li>
      <li>Sintaxis básica</li>
      <li>Estructura de documentos</li>
    </ol>
  </li>
  <li>Elementos esenciales
    <ol>
      <li>Texto y párrafos
        <ol>
          <li>Encabezados</li>
          <li>Formato básico</li>
        </ol>
      </li>
      <li>Enlaces e imágenes</li>
    </ol>
  </li>
  <li>Formularios</li>
</ol>

Organización de contenido educativo

En contextos educativos o de documentación, las listas anidadas permiten estructurar temarios complejos de manera clara y navegable:

<ul>
  <li>Módulo 1: Fundamentos
    <ul>
      <li>Lección 1.1: Conceptos básicos</li>
      <li>Lección 1.2: Herramientas necesarias
        <ul>
          <li>Editor de código</li>
          <li>Navegador web</li>
          <li>Herramientas de desarrollo</li>
        </ul>
      </li>
      <li>Lección 1.3: Primer proyecto</li>
    </ul>
  </li>
  <li>Módulo 2: Elementos avanzados</li>
</ul>

Buenas prácticas para listas anidadas

Al trabajar con listas anidadas, es importante mantener una indentación consistente en el código para facilitar su lectura y mantenimiento. La estructura debe ser lógica y no excesivamente profunda, ya que demasiados niveles pueden confundir a los usuarios.

La accesibilidad mejora significativamente cuando utilizamos listas anidadas apropiadamente, ya que los lectores de pantalla pueden navegar por la jerarquía de contenido de manera intuitiva, permitiendo a los usuarios saltar entre niveles y comprender la estructura del documento.

Los navegadores aplican automáticamente estilos visuales diferenciados para cada nivel de anidación, típicamente cambiando el tipo de viñeta o el estilo de numeración para distinguir visualmente los diferentes niveles jerárquicos.

Fuentes y referencias

Documentación oficial y recursos externos para profundizar en HTML

Documentación oficial de HTML
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, HTML es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de HTML

Explora más contenido relacionado con HTML y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

  • Comprender la diferencia entre listas ordenadas y no ordenadas en HTML.
  • Aprender a utilizar listas de definición para asociar términos y descripciones.
  • Conocer cómo crear listas anidadas para estructuras jerárquicas complejas.
  • Identificar los atributos útiles para modificar el comportamiento de las listas ordenadas.
  • Aplicar buenas prácticas para mejorar la accesibilidad y semántica del contenido con listas.