Bordes en una tabla
Para especificar los bordes de la tabla en CSS, usa la propiedad border. El siguiente ejemplo especifica un borde sólido para los elementos <table>, <th> y <td>.
Ejm
table, th, td { border: 1px solid; }
Tabla de ancho completo
Para coger el ancho completo de pantalla en una tabla se utiliza la siguiente sintaxis.
Ejm
table { width: 100%; }
Dobles bordes
Observa que la tabla de los ejemplos anteriores tiene bordes dobles. Esto se debe a que tanto la tabla como los elementos <th> y <td> tienen bordes separados. Para eliminar los bordes dobles, echa un vistazo al siguiente ejemplo.
Ejm
table { border-collapse: collapse; }
La propiedad border-collapse establece si los bordes de la tabla deben contraerse en un solo borde.
Si solo deseas un borde alrededor de la tabla, solo especifica la propiedad border para <table>.
Ejm
table { border: 1px solid; }
table con width y height
El ancho y el alto de una tabla están definidos por las propiedades width y height. El siguiente ejemplo establece el ancho de la tabla al 100% y la altura de los elementos <th> a 70px.
Ejm
table { width: 100%; } th { height: 70px; }
Para crear una tabla con la mitad de la página, utiliza width:50%.
Ejm
table { width: 50%; }
Alineamiento horizontal
La propiedad text-align establece la alineación horizontal (como izquierda, derecha o centro) del contenido en <th> o <td>. De forma predeterminada, el contenido de los elementos <th> está alineado al centro y el contenido de los elementos <td> está alineado a la izquierda. Para alinear al centro el contenido de los elementos <td> también, use text-align: center.
Ejm
td { text-align: center; }
Alineamiento vertical
La propiedad vertical-align establece la alineación vertical (como superior, inferior o central) del contenido en <th> o <td>. De forma predeterminada, la alineación vertical del contenido de una tabla es media (para los elementos <th> y <td>). El siguiente ejemplo establece la alineación vertical del texto hacia abajo para los elementos <td>.
Ejm
td { height: 50px; vertical-align: bottom; }
Padding en table
Para controlar el espacio entre el borde y el contenido de una tabla, utiliza la propiedad padding en los elementos <td> y <th>.
Ejm
th, td { padding: 15px; text-align: left; }
Divisores horizontales
Agrega la propiedad border-bottom a <th> y <td> para divisores horizontales.
Ejm
th, td { border-bottom: 1px solid #ddd; }
Usa el selector :hover en <tr> para resaltar las filas de la tabla al pasar el mouse sobre.
Ejm
tr:hover {background-color: coral;}
Tablas rayadas
Para las tablas con rayas de cebra, usa el selector nth-child() y agrega un color de fondo a todas las filas pares (o impares) de la tabla.
Ejm
tr:nth-child(even) {background-color: #f2f2f2;}
Color de la tabla
Ejm
th { background-color: #04AA6D; color: white; }
Tablas Responsive
Una tabla Responsive mostrará una barra de desplazamiento horizontal si la pantalla es demasiado pequeña para mostrar el contenido completo. Agrega un elemento contenedor (como <div>) con overflow-x:auto alrededor del elemento <table> para que responda.
Ejm
<div style="overflow-x:auto;"> <table> ... table content ... </table> </div>
Resumen
Propiedad | Descripción |
---|---|
border | Establece todas las propiedades de borde en una declaración |
border-collapse | Especifica si los bordes de la tabla deben contraerse o no. |
border-spacing | Especifica la distancia entre los bordes de las celdas adyacentes |
caption-side | Especifica la ubicación de un título de tabla |
empty-cells | Especifica si mostrar o no los bordes y el fondo en las celdas vacías de una tabla |
table-layout | Establece el algoritmo de diseño que se utilizará para una tabla |