Tutorial WordPress: Diseñar tablas comparativas para hosting con solo HTML y CSS

·

·

Introducción

Este tutorial muestra, paso a paso y con todo lujo de detalles, cómo diseñar tablas comparativas para servicios de hosting usando únicamente HTML y CSS. El objetivo es conseguir tablas limpias, accesibles, responsivas y fáciles de integrar en WordPress sin depender de plugins. Incluyo ejemplos completos de marcado y estilos, variantes responsivas y consejos para integrar y optimizar en un tema o en el editor de bloques.

Principios básicos y buenas prácticas

Estructura semántica recomendada

Una tabla comparativa típica para hosting suele contener una fila de encabezados con planes y filas con características. Ejemplo de estructura mínima:

lttable class=cmp-tablegt
  lttheadgt
    lttrgt
      ltthgtCaracterísticalt/thgt
      ltthgtBásicolt/thgt
      ltthgtProlt/thgt
      ltthgtPremiumlt/thgt
    lt/trgt
  lt/theadgt
  lttbodygt
    lttrgt
      lttdgtEspacio en discolt/tdgt
      lttdgt10 GBlt/tdgt
      lttdgt50 GBlt/tdgt
      lttdgt100 GBlt/tdgt
    lt/trgt
    lt!-- más filas según necesites --gt
  lt/tbodygt
lt/tablegt

Ejemplo completo: diseño moderno con CSS

El siguiente bloque muestra una tabla con estilo profesional: cabecera destacada, plan destacado (badge), colores, hover y botones simulados. Copia el HTML en el editor de WordPress (bloque HTML) y añade el CSS en Apariencia gt Personalizar gt CSS adicional o en el archivo style.css del tema hijo.

lttable class=cmp-tablegt
  lttheadgt
    lttrgt
      ltthgtCaracterísticalt/thgt
      ltthgtBásicolt/thgt
      ltth class=featuredgtProlt/thgt
      ltthgtPremiumlt/thgt
    lt/trgt
  lt/theadgt
  lttbodygt
    lttrgt
      lttdgtPrecio / meslt/tdgt
      lttdgtltbgt€3.99lt/bgtltbrgtltsmallgtPago anuallt/smallgtlt/tdgt
      lttdgtltbgt€7.99lt/bgtltbrgtltsmallgtPago anuallt/smallgtlt/tdgt
      lttdgtltbgt€14.99lt/bgtltbrgtltsmallgtPago anuallt/smallgtlt/tdgt
    lt/trgt
    lttrgt
      lttdgtEspaciolt/tdgt
      lttdgt10 GBlt/tdgt
      lttdgt50 GBlt/tdgt
      lttdgt100 GBlt/tdgt
    lt/trgt
    lttrgt
      lttdgtAncho de bandalt/tdgt
      lttdgtIlimitadolt/tdgt
      lttdgtIlimitadolt/tdgt
      lttdgtIlimitadolt/tdgt
    lt/trgt
    lttrgt
      lttdgtSoporte 24/7lt/tdgt
      lttdgtEmaillt/tdgt
      lttdgtChat amp Emaillt/tdgt
      lttdgtTeléfono, Chat amp Emaillt/tdgt
    lt/trgt
    lttrgt
      lttdgtlt/tdgt
      lttdgtltbutton class=btn>Seleccionarlt/buttongtlt/tdgt
      lttdgtltbutton class=btn btn-primary>Seleccionarlt/buttongtlt/tdgt
      lttdgtltbutton class=btn>Seleccionarlt/buttongtlt/tdgt
    lt/trgt
  lt/tbodygt
lt/tablegt
/ Base /
.cmp-table{
  width:100%
  border-collapse:collapse
  font-family:system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial
  color:#2b2b2b
  margin:1.2rem 0
}

/ Cabecera /
.cmp-table thead th{
  background:linear-gradient(180deg,#f6f8fb,#eef3f8)
  text-align:left
  padding:14px 16px
  font-weight:700
  border-bottom:2px solid rgba(0,0,0,0.06)
}

/ Filas /
.cmp-table tbody td{
  padding:14px 16px
  border-bottom:1px solid rgba(0,0,0,0.04)
  vertical-align:middle
}

/ Resaltar columna destacada /
.cmp-table thead th.featured,
.cmp-table tbody td.featured{
  background:#fff7e6
}

/ Hover de columnas: efecto sutil sobre la fila completa /
.cmp-table tbody tr:hover{
  background:rgba(0,0,0,0.02)
}

/ Botones (simulados con CSS) /
.btn{
  display:inline-block
  padding:8px 14px
  background:#f0f0f0
  border-radius:6px
  border:1px solid rgba(0,0,0,0.06)
  cursor:pointer
  color:#111
  font-weight:600
}
.btn-primary{
  background:#2b8cff
  color:#fff
  border-color:rgba(43,140,255,0.8)
}

/ Diseño general: asegurar buen contraste y legibilidad /
.cmp-table thead th,
.cmp-table tbody td b{
  color:#0b3351
}

/ Pequeñas adaptaciones para impresos y lectura /
@media print{
  .cmp-table { page-break-inside: avoid }
  .btn { display:none }
}

Opciones responsivas

Para móviles hay dos estrategias principales:

  1. Scroll horizontal: mantenemos la tabla intacta y permitimos que el contenedor haga overflow-x. Es simple y preserva la semántica.
  2. Versión stacked: convertimos cada fila en un bloque apilado con etiquetas de campo. Requiere añadir atributos data-label a cada td o reestructurar con CSS, pero ofrece lectura más natural en móvil.

1) Scroll horizontal (rápido y robusto)

Añade un contenedor con overflow-x: auto y las tablas se verán bien en móviles.

/ Contenedor para permitir scroll /
.table-wrapper{
  width:100%
  overflow-x:auto
  -webkit-overflow-scrolling:touch
}
.table-wrapper .cmp-table{
  min-width:720px / ajusta según columnas /
}
ltdiv class=table-wrappergt
  lttable class=cmp-tablegt
    lt!-- contenido de la tabla --gt
  lt/tablegt
lt/divgt

2) Stacked (apilado) — alternativa más amigable en móvil

Este método transforma las celdas en bloques con su etiqueta visible. Requiere añadir data-label a cada td que replicará la cabecera correspondiente.

lttable class=cmp-table stackedgt
  lttheadgt
    lttrgt
      ltthgtCaracterísticalt/thgt
      ltthgtBásicolt/thgt
      ltthgtProlt/thgt
    lt/trgt
  lt/theadgt
  lttbodygt
    lttrgt
      lttd data-label=CaracterísticagtEspaciolt/tdgt
      lttd data-label=Básicogt10 GBlt/tdgt
      lttd data-label=Progt50 GBlt/tdgt
    lt/trgt
  lt/tbodygt
lt/tablegt
/ Versión apilada: activa en pantallas pequeñas /
@media (max-width:720px){
  .cmp-table.stacked thead{
    display:none
  }
  .cmp-table.stacked tbody, 
  .cmp-table.stacked tr, 
  .cmp-table.stacked td{
    display:block
    width:100%
  }
  .cmp-table.stacked td{
    padding:12px 16px
    border-bottom:1px solid rgba(0,0,0,0.04)
    position:relative
  }
  .cmp-table.stacked td::before{
    content:attr(data-label)
    font-weight:700
    display:block
    margin-bottom:6px
    color:#0b3351
  }
  / Mantener botones y espaciado /
  .cmp-table.stacked td .btn{ width:100% box-sizing:border-box }
}

Accesibilidad y SEO

Integración en WordPress

  1. Editor de bloques (Gutenberg): inserta un bloque HTML personalizado y pega el HTML de la tabla. Añade el CSS en Apariencia gt Personalizar gt CSS adicional.
  2. Editor clásico o constructores: usa la vista HTML o el widget de código y pega lo anterior. Si tu constructor permite CSS por bloque, puedes aislar los estilos allí.
  3. Tema hijo: para cambios permanentes, añade los estilos al style.css del tema hijo y el HTML en la plantilla o mediante un bloque reusable.
  4. Shortcode: si prefieres un shortcode, crea uno en functions.php que devuelva el HTML de la tabla. Mantén los estilos en CSS global o condicional según el shortcode.

Optimización y mantenimiento

Trucos visuales y avanzados

Ejemplo: columna destacada con badge y sombra (CSS)

/ Badge y elevación para destacar un plan /
.cmp-table thead th.featured{
  position:relative
}
.cmp-table thead th.featured::after{
  content:Más popular
  position:absolute
  top:-10px
  left:50%
  transform:translateX(-50%)
  background:#ffdd57
  color:#2b2b2b
  padding:6px 10px
  border-radius:20px
  font-size:12px
  font-weight:700
  box-shadow:0 6px 18px rgba(0,0,0,0.08)
}
.cmp-table thead th.featured,
.cmp-table tbody td:nth-child(3){
  transform:translateY(-6px)
  box-shadow:0 10px 30px rgba(43,140,255,0.08)
  border-radius:8px
}

Conclusión

Con solo HTML y CSS se pueden construir tablas comparativas de hosting profesionales, accesibles y responsivas. La clave es mantener la semántica, prever la experiencia móvil (scroll o stacked), optimizar estilos para rendimiento y seguir buenas prácticas de accesibilidad. Los ejemplos incluidos son plantilla lista para integrar en WordPress mediante bloque HTML, CSS adicional o tema hijo.

Implementa, prueba en dispositivos reales y ajusta colores y espaciado según tu identidad visual para maximizar conversión y claridad. Los snippets ofrecidos son plenamente funcionales y adaptables a tus necesidades.



Leave a Reply

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