Tutorial WordPress: Estilizar listas ordenadas con números grandes alineados a la izquierda

·

·

Introducción

Este tutorial explica, paso a paso y con ejemplos listos para copiar, cómo estilizar listas ordenadas en WordPress de modo que los números sean grandes, visualmente destacados y alineados a la izquierda. Se incluyen varias técnicas (pseudo-elementos, ::marker, CSS Grid), consideraciones de accesibilidad y cómo integrar el código en WordPress (CSS adicional, functions.php, editor de bloques).

Consideraciones previas

Antes de aplicar estilos globales, ten en cuenta:

Método 1 — CSS puro con counter y ::before (máxima compatibilidad)

Este método elimina el marcador nativo, mantiene la semántica y crea un número grande mediante ::before. Es la opción más compatible y controlable.

CSS (copiar en tu stylesheet o CSS adicional):

/ Clase base para listas con números grandes alineados a la izquierda /
.large-num-list {
  list-style: none            / quitamos marcador nativo /
  margin: 0
  padding: 0
  counter-reset: section      / reiniciamos contador /
}

/ Elemento de la lista /
.large-num-list > li {
  counter-increment: section  / incrementamos por cada elemento /
  position: relative
  margin: 1rem 0
  padding-left: 6.5rem        / espacio para el número grande /
  min-height: 3.5rem          / opcional: para alinear verticalmente /
  display: block
}

/ Número grande como pseudo-elemento /
.large-num-list > li::before {
  content: counter(section)
  position: absolute
  left: 0                     / alineado a la izquierda del contenedor /
  top: 50%
  transform: translateY(-50%)
  font-size: 3.5rem           / tamaño del número /
  font-weight: 700
  line-height: 1
  color: #222
  width: 5.5rem
  text-align: left            / mantiene el número en la izquierda /
  letter-spacing: -0.02em
  font-family: inherit
  / opcional: estilo de badge /
  / background: rgba(0,0,0,0.05)
     padding: 0.25rem 0.5rem
     border-radius: 0.35rem /
}

/ Ajustes para pantallas pequeñas /
@media (max-width: 600px) {
  .large-num-list > li {
    padding-left: 4.5rem
  }
  .large-num-list > li::before {
    font-size: 2.2rem
    width: 3.5rem
  }
}

Ejemplo de HTML que añadirías en el editor (usa la clase en la lista):

ltol class=large-num-listgt
  ltligtPrimer paso: descripción completa del paso uno.lt/ligt
  ltligtSegundo paso: explicación detallada del segundo paso.lt/ligt
  ltligtTercer paso: detalles del tercer paso y enlaces.lt/ligt
lt/olgt

Método 2 — Usando ::marker (navegadores modernos)

Si te interesa simplicidad y tu público usa navegadores modernos, ::marker permite estilizar el marcador nativo. Limitación: no puedes aplicar propiedades complejas (como transform) al marcador en todos los navegadores.

/ Estilos con ::marker /
.modern-large-num-list {
  padding-left: 0 / limpia si quieres controlar posicionamiento desde el marker /
  margin: 0
  list-style: decimal
}

.modern-large-num-list > li {
  padding-left: 4.5rem / espacio para el marker visual /
  position: relative
}

.modern-large-num-list > li::marker {
  font-size: 3rem
  font-weight: 700
  color: #d9534f
  / En algunos navegadores se aplican pocas propiedades por eso ::before es fallback recomendable /
}

Método 3 — Números en columna separada con CSS Grid (alineación precisa)

Si quieres que el número quede en una columna completamente separada (útil cuando el texto de los items tiene múltiples líneas), CSS Grid permite una disposición robusta.

.grid-num-list {
  list-style: none
  counter-reset: item
  margin: 0
  padding: 0
}

.grid-num-list gt li {
  display: grid
  grid-template-columns: 5rem 1fr / columna fija para número   área de contenido /
  gap: 1rem
  align-items: start
  counter-increment: item
  margin: 0.75rem 0
}

/ Colocar número usando ::before o un elemento ::marker simulado /
.grid-num-list gt li::before {
  content: counter(item)
  font-size: 3rem
  font-weight: 700
  grid-column: 1 / 2
  justify-self: start
  align-self: center
  color: #1a73e8
}

/ Contenido del item ocupa la segunda columna /
.grid-num-list gt li gt  {
  grid-column: 2 / -1
}

HTML recomendado (cada li puede contener etiquetas internas como lth4gt o ltpgt):

ltol class=grid-num-listgt
  ltligt
    lth4gtTítulo 1lt/h4gt
    ltpgtTexto explicativo que puede ocupar varias líneas y seguirá alineado correctamente.lt/pgt
  lt/ligt
  ltligt
    lth4gtTítulo 2lt/h4gt
    ltpgtOtro texto extenso para comprobar alineación multi-línea.lt/pgt
  lt/ligt
lt/olgt

Integración en WordPress

A. Añadir CSS desde Personalizar

Ve a Apariencia → Personalizar → CSS adicional y pega el CSS de cualquiera de los métodos. Luego añade la clase a tu ltolgt desde el editor de bloques (panel Avanzado → Clase CSS adicional) o usando un bloque HTML.

B. Encolar un archivo CSS desde functions.php

Si prefieres un archivo CSS dentro de tu tema hijo, añade el siguiente fragmento a functions.php (tema hijo recomendado):

lt?php
function theme_enqueue_large_list_styles() {
  wp_enqueue_style(
    theme-large-list,
    get_stylesheet_directory_uri() . /css/large-list.css,
    array(),
    1.0
  )
}
add_action( wp_enqueue_scripts, theme_enqueue_large_list_styles )
?gt

Luego crea css/large-list.css en tu tema hijo y pega dentro el CSS deseado (método 1, 2 o 3).

C. Uso en el editor de bloques (Gutenberg)

Accesibilidad y SEO

Soporte RTL y múltiples idiomas

Para idiomas de derecha a izquierda, ajusta las propiedades left/right y la dirección del padding. Ejemplo sencillo:

/ Soporte RTL básico /
.rtl .large-num-list gt li {
  padding-left: 0
  padding-right: 6.5rem
}
.rtl .large-num-list gt li::before {
  left: auto
  right: 0
  text-align: right
}

Ejemplos avanzados: badge circular y número con color degradado

Ejemplo de badge circular para números:

.circle-badge-list {
  list-style: none
  counter-reset: step
  margin: 0
  padding: 0
}

.circle-badge-list gt li {
  counter-increment: step
  padding-left: 5.5rem
  position: relative
  margin: 1rem 0
}

.circle-badge-list gt li::before {
  content: counter(step)
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  width: 3.25rem
  height: 3.25rem
  background: linear-gradient(135deg, #ff7a18, #af002d)
  color: #fff
  border-radius: 50%
  display: inline-grid
  place-items: center
  font-weight: 700
  font-size: 1.35rem
}

Compatibilidad, pruebas y ajustes finales

Prueba en:

Ejemplo de ajuste responsive con clamp para el tamaño del número:

.large-num-list gt li::before {
  font-size: clamp(1.8rem, 4vw, 3.5rem) / escala entre móvil y escritorio /
}

Tabla de comparación rápida

Enfoque Compatibilidad Control visual Accesibilidad
counter ::before Alta Completo Alto (mantiene semántica)
::marker Moderada-alta (moderno) Limitado Alto
Grid con columna separada Alta Muy alto (alineación multi-línea) Alto

Ejemplo completo listo para WordPress

CSS (pega en CSS adicional o en tu archivo):

/ Ejemplo completo: large-num-list con responsive y badge sutil /
.large-num-list {
  list-style: none
  counter-reset: step
  margin: 0
  padding: 0
}

.large-num-list gt li {
  counter-increment: step
  padding-left: 6rem
  margin: 1rem 0
  position: relative
  min-height: 3rem
}

.large-num-list gt li::before {
  content: counter(step)
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  font-size: clamp(1.8rem, 4vw, 3rem)
  font-weight: 800
  color: #0b3d91
  width: 4.5rem
  text-align: left
}

/ pequeño ajuste en móvil /
@media (max-width: 480px) {
  .large-num-list gt li {
    padding-left: 4.2rem
  }
  .large-num-list gt li::before {
    width: 3rem
  }
}

HTML que puedes poner en un bloque HTML o en el editor (añade la clase a la lista):

ltol class=large-num-listgt
  ltligtInstala y activa el plugin recomendado.lt/ligt
  ltligtConfigura opciones básicas en el panel de ajustes.lt/ligt
  ltligtAplica estilos personalizados desde Apariencia → Personalizar → CSS adicional.lt/ligt
lt/olgt

Notas finales

Las técnicas mostradas ofrecen flexibilidad para conseguir números grandes y alineados a la izquierda manteniendo buena compatibilidad y accesibilidad. Elige el método según soporte de navegadores y necesidades de diseño: ::before para control total, ::marker para simplicidad cuando el público usa navegadores modernos, y grid cuando el contenido del ltligt es complejo y necesita una columna dedicada para el número.



Leave a Reply

Your email address will not be published. Required fields are marked *