Damián De Luca - Capacitación & Desarrollo Web

Cómo maquetar una tabla de productos con Bootstrap

Bootstrap

En el diseño web moderno, las tablas juegan un rol crucial para presentar datos de manera clara y organizada. Si bien el HTML básico proporciona una estructura funcional para las tablas, Bootstrap ofrece una manera elegante de estilizar y mejorar su presentación sin tener que escribir mucho CSS desde cero.

En este artículo, vamos a ver cómo maquetar una tabla de productos con Bootstrap paso a paso. Usaremos ejemplos con código y analizaremos cómo personalizar las tablas para satisfacer las necesidades específicas de tu proyecto. Además, veremos las limitaciones de este enfoque y las mejores prácticas para gestionar grandes volúmenes de datos.

Estructura básica de una tabla en HTML

Antes de pasar a Bootstrap, es importante entender la estructura básica de una tabla en HTML. Una tabla HTML típica se compone de las siguientes etiquetas:

<table>
  <thead>
    <tr>
      <th>Producto</th>
      <th>Precio</th>
      <th>Categoría</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Producto A</td>
      <td>$10</td>
      <td>Electrónica</td>
    </tr>
    <tr>
      <td>Producto B</td>
      <td>$15</td>
      <td>Ropa</td>
    </tr>
  </tbody>
</table>

Aquí tenemos la estructura básica:

Aunque esta tabla es funcional, su diseño es bastante básico. Aquí es donde entra Bootstrap.

Agregar Bootstrap para mejorar el diseño

Para usar Bootstrap, primero necesitamos incluir sus archivos CSS y JavaScript. Podemos hacerlo a través de un CDN o descargarlo e incorporarlo en nuestro proyecto. En ese caso se recomienda ubicarlo en el carpeta css. Para vincularlo usamos la etiqueta <link> como vemos a continuación:

<head>
  <link href="css/bootstrap.min.css" rel="stylesheet" />
</head>

Tabla con clases de Bootstrap

Bootstrap proporciona una clase llamada table que se aplica directamente a la tabla HTML para darle estilo automáticamente. Aquí un ejemplo:

<table class="table">
  <thead class="thead-dark">
    <tr>
      <th scope="col">Producto</th>
      <th scope="col">Precio</th>
      <th scope="col">Categoría</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Producto A</td>
      <td>$10</td>
      <td>Electrónica</td>
    </tr>
    <tr>
      <td>Producto B</td>
      <td>$15</td>
      <td>Ropa</td>
    </tr>
  </tbody>
</table>

En el ejemplo anterior recurrimos a la clase thead-dark para darle un fondo oscuro a la cabecera de la tabla y empleamos el color blanco para las letras de dicho encabezado.

Variantes de tablas en Bootstrap

Bootstrap ofrece diferentes variantes y estilos para las tablas. A continuación te muestro algunas de las más útiles:

  1. table-striped: alterna el color de fondo de las filas.
  2. table-bordered: agrega bordes a todas las celdas.
  3. table-hover: resalta una fila cuando se pasa el cursor por encima.
  4. table-sm: crea una tabla más compacta.
<table class="table table-striped table-bordered table-hover table-sm">
  <thead class="thead-dark">
    <tr>
      <th scope="col">Producto</th>
      <th scope="col">Precio</th>
      <th scope="col">Categoría</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Producto A</td>
      <td>$10</td>
      <td>Electrónica</td>
    </tr>
    <tr>
      <td>Producto B</td>
      <td>$15</td>
      <td>Ropa</td>
    </tr>
  </tbody>
</table>

Personalización de las tablas con Bootstrap

Si bien Bootstrap facilita la creación de tablas estilizadas, podemos personalizarlas aún más con CSS propio o con las utilidades de Bootstrap. Por ejemplo, podríamos querer cambiar el color de fondo o ajustar el ancho de las celdas.

Ejemplo de código HTML con personalización de estilos:

<style>
  .table-custom thead {
    background-color: #343a40;
    color: white;
  }
  .table-custom td {
    text-align: center;
  }
</style>

<table class="table table-custom">
  <thead>
    <tr>
      <th scope="col">Producto</th>
      <th scope="col">Precio</th>
      <th scope="col">Categoría</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Producto A</td>
      <td>$10</td>
      <td>Electrónica</td>
    </tr>
    <tr>
      <td>Producto B</td>
      <td>$15</td>
      <td>Ropa</td>
    </tr>
  </tbody>
</table>

Aquí hemos cambiado el color de fondo del encabezado de la tabla y alineado el texto en el centro de las celdas.

¿Cuándo usar tablas y cuándo no?

Las tablas son ideales para mostrar datos estructurados, como productos, inventarios, o cualquier tipo de información tabular. Sin embargo, hay algunas recomendaciones que debemos tener en cuenta:

Datos dinámicos e integración con JavaScript

Cuando trabajamos con grandes cantidades de datos, es mejor traerlos de manera dinámica desde una API o base de datos. A continuación te muestro cómo hacerlo de forma sencilla con JavaScript:

<script>
  // Datos ficticios
  const productos = [
    { nombre: "Producto A", precio: "$10", categoria: "Electrónica" },
    { nombre: "Producto B", precio: "$15", categoria: "Ropa" },
    { nombre: "Producto C", precio: "$20", categoria: "Hogar" }
  ];

  // Referencia a la tabla. En proyectos reales es recomendable usar Id como rerencia.
  const tableBody = document.querySelector("tbody");

  // Insertar filas dinámicamente
  productos.forEach(producto => {
    const row = `
      <tr>
        <td>${producto.nombre}</td>
        <td>${producto.precio}</td>
        <td>${producto.categoria}</td>
      </tr>
    `;
    tableBody.innerHTML += row;
  });
</script>

En el ejemplo anterior, para simular los datos, en lugar de traer la información de una base de datos o Rest API, los creamos un array de productos. Luego usamos JavaScript para recorrer ese array y generar dinámicamente las filas de la tabla. Insertamos las filas en el cuerpo de la tabla (<tbody>). La referencia fue con querySelector(), pero también se puede usar getElementById(). Cabe destacar que referenciar a la id de un elemento es ideal en proyectos donde podemos tener más de una tabla.

El forEach nos permite recorrer los productos y con innerHTML lo escribimos dentro del elemento seleccionado en la constante tableBody.

Si deseamos obtener datos de una Rest API se pueden usar las características de Fetch y Async y Await en JavaScript.

Maquetar tablas con Bootstrap: conclusión

El uso de Bootstrap para maquetar tablas es una excelente opción para ahorrar tiempo y lograr un diseño moderno sin mucho esfuerzo. Hemos visto cómo estructurar una tabla en HTML, aplicar diferentes clases de Bootstrap para mejorar su apariencia, y cómo personalizarla según tus necesidades.

Además, hemos revisado las limitaciones que pueden surgir al mostrar grandes cantidades de datos y cómo superarlas con la carga dinámica de datos con JavaScript.

Para obtener la versión más reciente de Bootstrap y acceder a la documentación oficial podemos ingresar en el sitio web https://getbootstrap.com/.

Si te interesa conocer más sobre las características de Bootstrap o como maquetar con HTML y CSS dejame un comentario o escribeme un mensaje.

Salir de la versión móvil