Crear hermosas tablas HTML con CSS

Proyecto Carlos
2 min readJul 28, 2020

Escribiendo el HTML

Escribamos un código HTML repetitivo para la tabla.

<table class="styled-table">
<thead>
<tr>
<th>Name</th>
<th>Points</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dom</td>
<td>6000</td>
</tr>
<tr class="active-row">
<td>Melissa</td>
<td>5150</td>
</tr>
<!-- and so on... -->
</tbody>
</table>

Tenga en cuenta que tenemos dos clases:

  • .styled-tablepara no manipular todos <table>los sitios
  • .active-row que será la fila "activa" - esta clase se usa para resaltar una fila específica y obtendrá su propio CSS como veremos pronto

Estilizando la mesa

Apuntemos <table>primero al elemento principal :

.styled-table {
border-collapse: collapse;
margin: 25px 0;
font-size: 0.9em;
font-family: sans-serif;
min-width: 400px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}

La mayoría de estos se explican por sí mismos, pero echemos un vistazo a los principales:

  • box-shadow para agregar una sutil sombra transparente alrededor de la mesa
  • border-collapse para garantizar que no haya espacio entre los bordes de las celdas

Estilizar el encabezado

Para el encabezado, simplemente podemos cambiar el color de fondo y aplicar algunos estilos básicos al texto:

.styled-table thead tr {
background-color: #009879;
color: #ffffff;
text-align: left;
}

Pasando a las celdas de la tabla

Vamos a espaciar un poco las cosas:

.styled-table th,
.styled-table td {
padding: 12px 15px;
}

Y las filas de la mesa …

Para estos, queremos hacer 3 cosas:

  1. Agregue un borde inferior a cada fila para la separación
  2. Agregue un fondo más claro a cada segunda fila para ayudar a la legibilidad
  3. Agregue un borde oscuro a la última fila para indicar el final de la tabla
.styled-table tbody tr {
border-bottom: 1px solid #dddddd;
}
.styled-table tbody tr:nth-of-type(even) {
background-color: #f3f3f3;
}
.styled-table tbody tr:last-of-type {
border-bottom: 2px solid #009879;
}

Por último, hagamos que la fila activa se vea diferente

Para esto, solo vamos a hacer cambios en el texto:

.styled-table tbody tr.active-row {
font-weight: bold;
color: #009879;
}

¡Y eso es! Si tiene alguna sugerencia para mejorar, hágamelo saber en las respuestas a continuación 😁

--

--