Listas en CSS
Las listas son una forma práctica de organizar contenido en HTML, ya sea para menús, instrucciones, o simplemente viñetas. Con CSS, puedes personalizarlas: desde el tipo de marcador (círculos, números, letras) hasta imágenes propias. En esta lección veremos cómo usar list-style-type, list-style-image, list-style-position y list-style para adaptar tus listas al diseño deseado.
list-style-type
Define el estilo del marcador de los elementos <li>. Aunque puedes usar cualquier valor en listas ordenadas (<ol>) o desordenadas (<ul>), algunos tipos se asocian comúnmente a cada una:
Valores comunes:
disc: Círculo lleno (por defecto en<ul>)circle: Círculo huecosquare: Cuadradodecimal: Números (por defecto en<ol>)lower-roman,upper-romanlower-alpha,upper-alphanone: Sin marcador
Valores modernos (CSS3): decimal-leading-zero, lower-greek, upper-latin. También cadenas personalizadas (experimental):
ul {
list-style-type: square;
}
ol {
list-style-type: lower-roman;
}
list-style-image
Permite usar una imagen como marcador.
Valores: none, url("/ruta/imagen.png")
ul {
list-style-image: url("/images/star.png");
list-style-type: circle; /* respaldo */
}
Consejo: Usa imágenes pequeñas (ej. 16x16 px), y siempre incluye un respaldo con list-style-type.
Alternativa moderna: Puedes usar caracteres Unicode o emojis directamente:
ul {
list-style-type: "⭐ ";
}
list-style-position
Define si el marcador se muestra fuera (outside) o dentro (inside) del contenido de la lista.
Valores: outside (por defecto), inside
ul.outside {
list-style-position: outside;
}
ul.inside {
list-style-position: inside;
}
Nota: inside puede afectar la alineación de líneas largas o párrafos dentro de listas.
list-style (abreviada)
Combina list-style-type, list-style-position y list-style-image en una sola propiedad.
ul {
list-style: square inside url("/images/star.png");
}
El orden no es obligatorio, pero se recomienda: tipo, posición e imagen.
Ejemplo completo
<ul class="custom">
<li>Primer elemento</li>
<li>Segundo elemento</li>
</ul>
<style>
.custom {
list-style: url("/images/star.png") square inside;
}
</style>
Buenas prácticas
Valores universales: Puedes usar initial, inherit y unset en todas estas propiedades:
initial: restaura el valor por defecto del navegador.inherit: hereda del contenedor padre.unset: aplicainheritsi es heredable, oinitialsi no lo es.
Accesibilidad: Asegúrate de que los marcadores sean visuales y tengan buen contraste. Si usas list-style: none, considera añadir íconos personalizados con ::before.
Diseño adaptable: Usa em o rem para márgenes y paddings, y prueba con list-style-position: outside para mantener estructura clara.
Rendimiento: Optimiza las imágenes usadas como marcadores, usa .svg si es posible.
Compatibilidad: Algunos valores modernos tienen soporte limitado. Siempre proporciona alternativas o respaldos (ej. usar list-style-type junto a list-style-image).
Pruebas: Verifica el diseño en pantallas pequeñas y distintos navegadores.