CSS - Tables

Bienvenue, futurs développeurs web ! Aujourd'hui, nous plongeons dans le monde des tables CSS. En tant que votre professeur de sciences informatiques du coin, je suis excité de vous guider à travers ce voyage. Les tables peuvent sembler old-school, mais croyez-moi, elles sont toujours incroyablement utiles dans le design web moderne. Alors, mettons nos manches et c'est parti !

CSS - Tables

CSS Tables - Collapse des Bordures

Imaginez que vous construisez une clôture autour de votre jardin. Vous voulez que les poteaux de la clôture se touchent, non ? C'est exactement ce que fait border-collapse pour les bordures des tables. Il détermine si les bordures des cellules doivent être séparées ou fusionnées en une seule bordure.

table {
border-collapse: collapse;
}

Ce code fera toucher les bordures de votre table, créant un aspect propre et unifié. C'est comme donner à votre table une coupe nette !

CSS Tables - Espacement des Bordures

Maintenant, que faire si vous voulez un peu d'espace entre vos cellules de table ? C'est là que border-spacing entre en jeu. C'est comme la distanciation sociale pour vos cellules de table !

table {
border-spacing: 5px;
}

Cela ajoutera un écart de 5 pixels entre vos cellules. Vous pouvez même définir un espacement horizontal et vertical différents :

table {
border-spacing: 5px 10px;
}

Ici, nous avons 5 pixels d'espacement horizontal et 10 pixels d'espacement vertical. C'est comme donner à vos cellules de table un peu d'espace personnel !

CSS Tables - Côté du Légende

Les tables peuvent avoir des légendes, et vous pouvez contrôler où ces légendes apparaissent en utilisant caption-side. C'est comme décider de placer le titre d'un livre en haut ou en bas de la couverture.

caption {
caption-side: bottom;
}

Cela placera votre légende de table en bas. Vous pouvez également utiliser top si vous préférez qu'elle soit en haut.

CSS Tables - Cellules Vides

Vous vous êtes déjà demandé ce qui se passe avec les cellules vides dans votre table ? La propriété empty-cells vous permet de décider de les afficher ou de les masquer.

table {
empty-cells: hide;
}

Cela rend les cellules vides invisibles. C'est comme jouer à cache-cache avec vos cellules de table !

CSS Tables - Mise en Page de la Table

La propriété table-layout détermine comment les cellules, les lignes et les colonnes de la table sont mises en page. C'est comme choisir entre un plan de siège strict et une free-for-all à une fête de dîner.

table {
table-layout: fixed;
}

Cela définit une mise en page de table fixe, ce qui peut améliorer la vitesse de rendu pour les grandes tables.

CSS Table - avec Mise en Page Fixe

Avec une mise en page fixe, la largeur de la table est déterminée par la première ligne ou les largeurs spécifiées. C'est comme avoir des places assignées à une réception de mariage.

table {
table-layout: fixed;
width: 100%;
}

th, td {
width: 25%;
}

Cela crée une table avec quatre colonnes de largeur égale, indépendamment du contenu.

CSS Table - avec Mise en Page Automatique

Une mise en page automatique ajuste les largeurs des colonnes en fonction de leur contenu. C'est comme laisser les invités choisir leurs propres places à une fête de dîner décontractée.

table {
table-layout: auto;
width: 100%;
}

Ici, le navigateur ajustera les largeurs des colonnes en fonction de leur contenu.

CSS Tables - Hauteur et Largeur

Vous pouvez contrôler la taille de votre table et de ses cellules en utilisant les propriétés height et width. C'est comme décider combien de grande votre table à manger devrait être.

table {
width: 100%;
}

td {
height: 50px;
}

Cela définit la largeur de la table à 100% de son conteneur et la hauteur de chaque cellule à 50 pixels.

CSS Tables - Alignement de la Table

Aligner le contenu à l'intérieur des cellules de table est crucial pour la lisibilité. C'est comme disposer la nourriture sur une assiette - la présentation compte !

td {
text-align: center;
vertical-align: middle;
}

Cela centre le contenu horizontalement et verticalement dans chaque cellule.

CSS Tables - Bordure

Les bordures peuvent rendre votre table plus visuellement attrayante et plus facile à lire. C'est comme dessiner des lignes sur une feuille de papier pour organiser les informations.

table, th, td {
border: 1px solid black;
}

Cela ajoute une bordure de 1 pixel de couleur noire solide à la table et à toutes ses cellules.

CSS Tables - Couleur de Fond

Ajouter des couleurs de fond peut rendre votre table plus visuellement attrayante et aider à distinguer différentes parties de la table. C'est comme peindre les chambres de votre maison en différentes couleurs.

table {
background-color: #f2f2f2;
}

th {
background-color: #4CAF50;
color: white;
}

Cela définit une couleur de fond gris clair pour la table et une couleur de fond verte avec du texte en blanc pour les cellules d'en-tête.

CSS Tables - Styles de police

Styliser le texte dans votre table peut grandement améliorer la lisibilité. C'est comme choisir la bonne police pour un livre - cela peut faire toute la différence dans l'expérience de lecture.

table {
font-family: Arial, sans-serif;
}

th {
font-weight: bold;
}

td {
font-size: 14px;
}

Cela définit Arial comme police pour toute la table, rend le texte des en-têtes gras et définit la taille de police des cellules à 14 pixels.

CSS Tables - Autres Styles

Il y a beaucoup d'autres styles que vous pouvez appliquer aux tables. Voici un aperçu rapide :

Propriété Description Exemple
padding Espace à l'intérieur des cellules td { padding: 10px; }
border-radius Coins arrondis table { border-radius: 5px; }
box-shadow Effet d'ombre table { box-shadow: 2px 2px 5px grey; }
opacity Transparence table { opacity: 0.8; }

CSS Tables - Marges

Les marges peuvent donner à votre table un peu d'espace par rapport aux autres éléments sur la page. C'est comme laisser un peu d'espace autour d'un cadre de photo sur un mur.

table {
margin: 20px auto;
}

Cela ajoute une marge de 20 pixels en haut et en bas de la table, et la centre horizontalement.

CSS Tables - Séparateurs (verticaux / horizontaux)

Vous pouvez ajouter des séparateurs à votre table pour séparer les colonnes ou les lignes. C'est comme utiliser une règle pour dessiner des lignes droites dans un cahier.

td, th {
border-right: 1px solid black;
}

tr {
border-bottom: 1px solid black;
}

Cela ajoute des lignes verticales entre les colonnes et des lignes horizontales entre les lignes.

CSS Tables - Tableau à Rayures

Les tables à rayures peuvent rendre la lecture des lignes de données plus facile. C'est comme surligner chaque autre ligne dans un livre pour garder votre place.

tr:nth-child(even) {
background-color: #f2f2f2;
}

Cela crée des rangées blanches et gris clair alternées dans votre table.

CSS Tables - Tableau Réactif

Rendre les tables réactives garantit qu'elles ont bonne allure sur tous les appareils. C'est comme avoir une table à manger qui peut s'agrandir ou se rétracter en fonction du nombre d'invités.

@media screen and (max-width: 600px) {
table, thead, tbody, th, td, tr {
display: block;
}

thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}

tr { border: 1px solid #ccc; }

td {
border: none;
position: relative;
padding-left: 50%;
}

td:before {
position: absolute;
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
content: attr(data-label);
}
}

Ce code transforme la table en un format similaire à une liste sur les petits écrans, rendant la lecture plus facile sur les appareils mobiles.

CSS Table - Propriétés Associées

Voici un tableau des propriétés CSS associées que vous pourriez trouver utiles lors de la manipulation des tables :

Propriété Description
border-collapse Détermine si les bordures des cellules sont séparées ou fusionnées
border-spacing Définit l'écart entre les bordures des cellules
caption-side Spécifie l'emplacement de la légende de la table
empty-cells Définit si les bordures sur les cellules vides sont affichées
table-layout Définit l'algorithme utilisé pour la mise en page des cellules, des lignes et des colonnes de la table
vertical-align Définit l'alignement vertical du contenu dans une cellule
text-align Définit l'alignement horizontal du contenu dans une cellule

Et voilà ! Vous êtes maintenant bien équipé pour créer et styliser des tables en CSS. Souvenez-vous, la pratique rend parfait, alors n'ayez pas peur d'expérimenter avec ces propriétés. Bon codage !

Credits: Image by storyset