Tutorial WordPress: Personalizar el bloque lista con contadores CSS (list-style: decimal-leading-zero)

·

·

Introducción

Este tutorial explica, paso a paso y con ejemplos listos para usar, cómo personalizar el bloque Lista de WordPress (Gutenberg) para mostrar números con ceros a la izquierda —por ejemplo 01, 02, 03— usando list-style: decimal-leading-zero y técnicas con contadores CSS para casos avanzados. Incluye métodos simples, soluciones para editores, fallbacks y ejemplos visuales (badges, espaciado, colores).

Requisitos y contexto

Funciona en el frontend añadiendo CSS al tema (Appearance → Customize → Additional CSS, un child theme o un plugin de CSS personalizado). Para vista previa dentro del editor de bloques (Gutenberg) conviene añadir el CSS también al editor de bloques con un pequeño snippet en functions.php o usando add_editor_style / enqueue_block_editor_assets.

Sobre selectores del bloque Lista

El bloque Lista de Gutenberg típicamente genera un ltulgt o ltolgt con la clase wp-block-list (y el bloque envolvente puede ser ltdiv class=wp-block-listgt dependiendo del tema). Lo más práctico es asignar una clase personalizada al bloque desde la barra lateral del bloque (Additional CSS class(es)). En los ejemplos usaremos leading-zero-list.

Método 1 — La forma más sencilla: list-style

Si solo quieres el número con cero inicial y no necesitas adornos extra, la propiedad CSS list-style: decimal-leading-zero es la opción más directa y soportada en navegadores modernos.

Pasos

  1. Selecciona el bloque Lista en el editor y, en la barra lateral, añade la clase: leading-zero-list.
  2. Agrega el siguiente CSS en Appearance → Customize → Additional CSS o en tu hoja de estilos del tema.
.leading-zero-list ol {
  list-style: decimal-leading-zero
  / Ajusta la posición del marcador si hace falta /
  list-style-position: outside
  margin-left: 1.5rem / modifica según el diseño del tema /
}

Ejemplo HTML generado por el bloque (esto no es necesario incluir en WP, lo muestro para referencia):

lt!-- Bloque Lista en WordPress con clase adicional --gt
lt!-- Dentro de Gutenberg: asignar leading-zero-list en Additional CSS class(es) --gt
ltol class=wp-block-list leading-zero-listgt
  ltligtPrimer elementolt/ligt
  ltligtSegundo elementolt/ligt
  ltligtTercer elementolt/ligt
lt/olgt

Ventajas y limitaciones

Método 2 — Control total con contadores CSS (listas sin marcador pseudo-elemento)

Si quieres un diseño más elaborado (badges, colores, alineación, añadir prefijos/sufijos) usa counter-reset, counter-increment y pseudo-elementos. Este enfoque también permite añadir ceros a la izquierda con control sobre qué números reciben el cero.

Ejemplo: números con badge circular y cero líder solo para 1..9

.leading-zero-list {
  / opcional: restricciones de ancho del bloque /
}

.leading-zero-list ol {
  list-style: none / retiramos marcadores nativos /
  counter-reset: item / iniciamos el contador /
  margin-left: 0
  padding-left: 3.2rem / espacio para el badge /
}

/ Cada li incrementa el contador /
.leading-zero-list ol gt li {
  counter-increment: item
  position: relative
  padding: 0.4rem 0 / espacio vertical entre elementos /
}

/ Badge común para todos (números >= 10) /
.leading-zero-list ol gt li::before {
  content: counter(item) .
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  width: 2.4rem
  text-align: right
  color: #fff
  background: #2b7cff
  border-radius: 999px
  padding: 0.25rem 0.5rem
  font-weight: 700
}

/ Fallback visual: para primeros 9 elementos mostrar 0 delante con un estilo distinto /
.leading-zero-list ol gt li:nth-child(-n 9)::before {
  content: 0 counter(item) .
  background: #ff6b6b
}

Notas sobre el ejemplo:

Soportar listas con atributo start

Si usas ltol start=5gt y la lista empieza en un valor distinto de 1, la técnica con contadores debe sincronizarse reajustando counter-reset. CSS puro no puede leer dinámicamente el valor numérico de start, por lo que hay tres opciones:

Aplicar el CSS en el editor de bloques (vista previa en Gutenberg)

Para que los cambios se vean también dentro del editor de bloques, añade un archivo CSS que se cargue en el editor o encolado vía functions.php. Ejemplo mínimo en functions.php de un child theme:

// En functions.php (child theme)
function mi_tema_enqueue_block_editor_styles() {
    wp_enqueue_style(
        mi-editor-list-styles,
        get_stylesheet_directory_uri() . /editor-list-styles.css,
        array(),
        1.0
    )
}
add_action(enqueue_block_editor_assets, mi_tema_enqueue_block_editor_styles)

Crea editor-list-styles.css con los estilos que necesites (por ejemplo los del método de badges o el simple decimal-leading-zero).

Compatibilidad y fallbacks

list-style: decimal-leading-zero está soportado en la mayoría de navegadores modernos, pero si necesitas máxima compatibilidad (o estilos avanzados), usa contadores CSS más pseudo-elementos. Si eliges contadores, recuerda:

Ejemplos completos listos para pegar

1) Método simple — class decimal-leading-zero

/ Pegar en Appearance → Customize → Additional CSS /
.leading-zero-list ol {
  list-style: decimal-leading-zero
  list-style-position: outside
  margin-left: 1.6rem
  color: #222
}

2) Badge circular con cero líder solo para 1..9 (estilo visual)

.leading-zero-list ol {
  list-style: none
  counter-reset: item
  padding-left: 3.2rem
  margin: 0
}

.leading-zero-list ol gt li {
  counter-increment: item
  position: relative
  padding: 0.45rem 0
}

/ Badges por defecto /
.leading-zero-list ol gt li::before {
  content: counter(item) .
  position: absolute
  left: 0
  top: 50%
  transform: translateY(-50%)
  width: 2.4rem
  height: 2.4rem
  display: inline-flex
  align-items: center
  justify-content: center
  color: #ffffff
  background: #1e88e5
  border-radius: 50%
  font-weight: 600
  font-size: 0.95rem
}

/ Para 1..9, añadimos un 0 delante y un color distinto /
.leading-zero-list ol gt li:nth-child(-n 9)::before {
  content: 0 counter(item) .
  background: #ff7043
}

3) Soporte para start usando inline style

Si en HTML pones ltol start=5gt, añade también inline counter-reset para mantener coherencia con contadores CSS:

ltol class=wp-block-list leading-zero-list start=5 style=counter-reset: item 4gt
  ltligtElemento 5 (mostrará 05 si aplica regla de cero)lt/ligt
  ltligtElemento 6lt/ligt
lt/olgt

Consejos prácticos

Resumen rápido

Si buscas la solución más simple y compatible: añade una clase al bloque y usa list-style: decimal-leading-zero. Si necesitas un control visual completo (badges, colores, alineación), usa contadores CSS con ::before y, si hace falta, nth-child() para añadir el cero solo a los primeros nueve elementos. Para ver los cambios dentro de Gutenberg, añade los estilos al editor con enqueue_block_editor_assets.



Leave a Reply

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