La gestion des tableaux sur le web a considérablement évolué. Si la structure fondamentale repose sur le balisage HTML, la présentation visuelle, et notamment les bordures, relève désormais presque exclusivement des feuilles de style CSS. Comprendre cette transition - du modèle obsolète des attributs HTML vers la flexibilité du CSS - est essentiel pour tout développeur souhaitant créer des interfaces propres et conformes aux standards actuels.

Les fondamentaux de la structure HTML
La création d'un tableau commence par la balise <table>, qui définit le conteneur global. À l'intérieur, le tableau est construit ligne par ligne via la balise <tr> (table row). Chaque ligne contient ensuite des cellules, définies soit par <td> (table data) pour les cellules standards, soit par <th> (table header) pour les cellules d'en-tête, qui sont généralement affichées en gras par défaut.
Il est impératif de respecter une certaine logique organisationnelle : une balise <tr> doit contenir uniquement des <td> ou <th>, et jamais une autre structure de rangée. De même, la cohérence du nombre de cellules par ligne est cruciale pour éviter des mises en page chaotiques.
Bordures : De l'attribut obsolète au CSS moderne
Historiquement, le contrôle des bordures s'effectuait via des attributs directement intégrés dans la balise d'ouverture <table>. Par exemple, border="1" permettait d'afficher un quadrillage. Cependant, ces méthodes sont aujourd'hui classées comme "en cours d'abandon" (deprecated) et ne doivent plus être utilisées dans les standards HTML modernes.
Le rôle de cellpadding et cellspacing
Dans l'ancien modèle, cellpadding permettait de définir l'espace intérieur entre le contenu de la cellule et sa bordure, tandis que cellspacing gérait l'espace entre les cellules elles-mêmes. Bien que ces concepts soient toujours pertinents visuellement, leur implémentation via des attributs HTML est obsolète. Désormais, ces réglages s'effectuent via les propriétés CSS padding et border-spacing.
L'approche CSS : La propriété border
Pour ajouter des bordures avec CSS, on cible les éléments td ou th. La "super-propriété" border permet de condenser trois informations en une seule déclaration :
- La largeur : définie en pixels (ex:
2px). - Le type de trait :
solid(trait simple),double,dotted(pointillés), oudashed(tirets). - La couleur : via un nom, un code hexadécimal ou une valeur RGB.
td { border: 2px solid #000;}Pour obtenir un aspect de grille compacte où les bordures fusionnent, on utilise la propriété border-collapse. Sans elle, chaque cellule conserverait ses propres bordures distinctes, créant un effet de double trait peu esthétique.
Propriété CSS : border-collapse expliquée !
Dimensionnement et disposition : Largeur et Hauteur
La gestion des dimensions (largeur et hauteur) suit la même logique de transition. Bien que les attributs width et height soient techniquement interprétés par certains navigateurs, ils sont déconseillés.
Utilisation des unités
Vous pouvez définir des largeurs en pixels (valeur fixe) ou en pourcentage (relative à l'élément parent). Il est conseillé d'utiliser les mentions CSS comme <td style="width:100px"> ou de définir ces styles dans une feuille de style externe pour garantir la conformité avec la variante HTML "Strict".
Éviter les conflits
Il est important de noter que la largeur définie sur une cellule s'applique à toute sa colonne. Le meilleur emplacement pour cette déclaration est la première rangée du tableau. De la même manière, la hauteur définie sur une cellule s'applique à toute la rangée correspondante. Veillez toujours à ce que vos définitions en pixels et en pourcentage ne créent pas de conflits de rendu.
Structurer les données complexes
Pour les tableaux de grande envergure, il est recommandé de diviser le contenu en trois zones sémantiques distinctes :
<thead>: L'en-tête, idéal pour les titres de colonnes.<tbody>: Le corps, contenant les données principales.<tfoot>: Le pied de tableau, parfait pour afficher des totaux ou des résumés.
Ces balises n'ont pas d'incidence visuelle directe, mais elles améliorent considérablement l'accessibilité et la maintenance du code.

Fusion de cellules : colspan et rowspan
Parfois, une cellule doit occuper l'espace de plusieurs autres. Les attributs colspan et rowspan permettent de manipuler cette disposition :
colspan: Fusionne les cellules horizontalement (sur plusieurs colonnes).rowspan: Fusionne les cellules verticalement (sur plusieurs rangées).
Par exemple, un colspan="2" dans une cellule <td> indique au navigateur que cette cellule doit s'étendre sur deux colonnes adjacentes, réduisant ainsi le compte de cellules nécessaires dans la ligne suivante.
Alignement et mise en forme avancée
Le contenu des cellules peut être aligné horizontalement (text-align en CSS, remplaçant l'attribut align) ou verticalement (vertical-align, remplaçant valign).
Alignement sur un caractère
Une fonctionnalité avancée permet d'aligner des nombres sur une virgule décimale grâce à align="char" (bien que son support soit discrétionnaire selon les navigateurs). Cela garantit que tous les chiffres d'une colonne sont parfaitement alignés sur le séparateur, offrant une lisibilité accrue pour les tableaux financiers.
Effets esthétiques modernes
Le CSS moderne permet d'aller bien au-delà de la simple bordure :
border-radius: Permet d'arrondir les coins des cellules ou du tableau complet pour un aspect plus moderne.box-shadow: Ajoute une ombre portée, créant un effet de profondeur sur le tableau ou sur des blocs spécifiques.text-shadow: Applique une ombre directement au texte pour le faire ressortir.
Ces propriétés transforment un tableau de données aride en un élément graphique intégré à l'identité visuelle de votre site. N'oubliez pas qu'une mise en page réussie repose sur la clarté et la hiérarchie de l'information, le tableau restant avant tout un outil de lecture.