Tutorial WordPress: Añadir microestilos para destacar tablas muy largas en móvil con CSS

·

·

Añadir microestilos para destacar tablas muy largas en móvil con CSS

En pantallas pequeñas, las tablas largas suelen volverse incómodas: columnas que se pierden fuera del viewport, filas difíciles de seguir y cabeceras que desaparecen cuando el usuario hace scroll. Con microestilos CSS bien pensados puedes mejorar la legibilidad y la navegación sin tocar Javascript o afectar demasiado el rendimiento. Este artículo explica técnicas prácticas y ejemplos listos para usar en WordPress para destacar tablas largas en móvil.

Principios generales

Patrones recomendados

  1. Wrapper-scroll: envolver la tabla en un contenedor con overflow-x: auto para permitir scroll horizontal en móvil.
  2. Cabecera sticky: fijar la fila de cabecera para mantener el contexto al hacer scroll vertical.
  3. Microcontrastes: usar bandas alternadas de filas, bordes sutiles y un color de fondo para columnas importantes.
  4. Indicador de scroll: añadir sombras o máscaras (edge fades) en los laterales para mostrar que hay más contenido a la izquierda/derecha.
  5. Resaltar fila/columna activa: usar :focus-within, :active o clases que el tema o plugin pueda añadir para enfatizar la fila en interacción táctil o foco.

Ejemplo completo de HTML de tabla (ejecutable en WordPress)

Coloca la tabla en el editor de bloques o en una plantilla mantén la estructura semántica y una clase para el wrapper:

Producto Precio Stock Categoría SKU Fecha
Producto A 12,00 € 24 Oficina SKU001 2025-09-01
Producto B 8,50 € 12 Hogar SKU002 2025-08-15

CSS: Microestilos para móvil

Este bloque CSS incluye: contenedor scrollable, cabecera sticky, bandas alternadas, resalte de fila al foco/tap, y degradados laterales como indicación de contenido horizontal. Pégalo en Apariencia → Personalizar → CSS adicional, o añádelo al CSS del tema.

/ Contenedor horizontal y microestilos generales /
.table-wrap {
  overflow-x: auto
  -webkit-overflow-scrolling: touch / suaviza el scroll en iOS /
  position: relative / necesario para los pseudo-elementos indicadores /
  margin: 0.5em 0
}

/ Tabla básica ligera /
.microtable__table {
  width: 100%
  border-collapse: collapse
  min-width: 640px / fuerza scroll en pantallas estrechas si hay muchas columnas /
  font-size: 0.95rem
}

/ Cabecera sticky para mantener contexto /
.microtable__table thead th {
  position: sticky
  top: 0
  background: #ffffff / puede usar color del tema /
  z-index: 2
  text-align: left
  padding: 0.55rem 0.75rem
  border-bottom: 1px solid rgba(0,0,0,0.08)
}

/ Celdas /
.microtable__table td {
  padding: 0.6rem 0.75rem
  border-bottom: 1px solid rgba(0,0,0,0.04)
}

/ Bandas alternadas sutiles para facilitar el seguimiento /
.microtable__table tbody tr:nth-child(odd) {
  background: rgba(0,0,0,0.02)
}

/ Resalte suave de la fila cuando recibe foco (útil en navegación táctil/teclado) /
.microtable__table tbody tr:focus-within,
.microtable__table tbody tr:active {
  outline: none
  background: linear-gradient(90deg, rgba(255,250,200,0.2), rgba(255,255,255,0))
  box-shadow: inset 3px 0 0 rgba(255,200,0,0.25)
}

/ Columna destacada (opcional): por ejemplo destacar la segunda columna /
.microtable__table td:nth-child(2),
.microtable__table th:nth-child(2) {
  background: rgba(255,250,200,0.04)
}

/ Indicadores laterales: degradados para mostrar que hay más contenido horizontal /
.table-wrap::before,
.table-wrap::after {
  content: 
  position: absolute
  top: 0
  bottom: 0
  width: 2.5rem
  pointer-events: none
  z-index: 3
}
/ izquierda /
.table-wrap::before {
  left: 0
  background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0))
}
/ derecha (sutil sombra hacia el interior) /
.table-wrap::after {
  right: 0
  background: linear-gradient(to left, rgba(255,255,255,1), rgba(255,255,255,0))
}

/ En móviles podemos subir el contraste de los degradados y reducir min-width /
@media (max-width: 600px) {
  .microtable__table {
    min-width: 560px / mantiene scroll, ajusta según número de columnas /
  }
  .table-wrap::before,
  .table-wrap::after {
    width: 3.5rem
  }
}

/ Accesibilidad: respetar preferencia de movimiento /
@media (prefers-reduced-motion: reduce) {
  .microtable__table tbody tr:focus-within,
  .microtable__table tbody tr:active {
    transition: none
  }
}

Alternativa: degradado con máscara (mejor en navegadores modernos)

Si quieres un indicador más refinado y compatible en navegadores con soporte para mask-image, sustituye las pseudo-elementos por una máscara:

/ Edge fade usando mask-image (WebKit y navegadores modernos) /
.table-wrap {
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%)
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%)
}
/ Nota: esto enmascara el propio contenedor. Mantener precaución si la tabla tiene fondos transparentes. /

Integración en WordPress (añadir CSS via tema)

Si prefieres colocar el CSS en los assets del tema, puedes añadir un pequeño snippet para encolar un archivo CSS desde functions.php del tema hijo:

// functions.php (tema hijo)
function tema_hijo_enqueue_microtable() {
  wp_enqueue_style( microtable-styles, get_stylesheet_directory_uri() . /css/microtable.css, array(), 1.0 )
}
add_action( wp_enqueue_scripts, tema_hijo_enqueue_microtable )

Asegúrate de crear el archivo css/microtable.css con el contenido CSS mostrado arriba. Alternativamente, pega el CSS en Apariencia → Personalizar → CSS adicional para una edición rápida.

Buenas prácticas y consideraciones finales

Resumen

Con microestilos CSS que combinan un contenedor scrollable, cabeceras sticky, bandas alternadas, resalte por foco y degradados laterales, puedes convertir tablas largas en móviles de una experiencia frustrante a una lectura clara y navegable. Implementa primero la versión CSS ligera y, si es necesario, añade mejoras progresivas con máscara o pequeñas mejoras en el tema de WordPress.



Leave a Reply

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