Un tableau simple

La balise qui permet d'indiquer le début et la fin d'un tableau est <table> </table>.

Il faut absolument la placer dans un paragraphe, du fait que c'est une balise de type bloc.

Voici un exemple d'utilisation:

À l'intérieur de cette dernière, on intègre par exemple les balises:

  • <tr> </tr>: indique le début et la fin d'une ligne du tableau ;
  • <td> </td>: indique le début et la fin du contenu d'une cellule.

Pour faire un tableau en HTML, il faut le construire ligne par ligne, dans chacune il faut indiquer le contenu des différentes cellules, ce qui donne schématiquement:

screenshot tableau simple
Un tableau, avec des cellules contenues dans des lignes

Si on veut faire un tableau à deux lignes, avec trois cellules par ligne (donc trois colonnes), on devra taper ceci:

screenshot tableau sans bordure
Un tableau sans bordure

Plus qu'à rajouter les bordures, et on sait déjà comment faire:

screenshot tableau bordures
Chaque cellule a sa propre bordure

On s'aperçoit que les bordures sont décollées, pour y remédier, il faut utiliser la propriété border +

  • collapse: les bordures seront collées entre elles;
  • separate: les bordures seront dissociées (valeur par défaut)

screenshot tableau bordures
Les bordures sont collées les unes aux autres

Haut

La ligne d'en-tête

Maintenant on va ajouter la ligne d'en-tête.

Pour la créer on commence par la balise <tr> (comme vu précédemment) sauf que pour les cellules on va utiliser <th> au lieu de <td>.

Il ne faut pas oublier d'adapter son CSS.

screenshot en-tête tableau
Un tableau avec un en-tête

Haut

Titre du tableau

Normalement, tout tableau doit avoir un titre, il permet de renseigner rapidement le visiteur sur le contenu.

Pour le mettre en pratique, on va utiliser la balise <caption> </caption>.

screenshot titre tableau
Un tableau avec un titre

En ce qui concerne le CSS pour le titre, on va utiliser la propriété caption-side +

  • top: le titre sera placé au-dessus du tableau (par défaut) ;
  • bottom: le titre sera placé en dessous du tableau.

Haut


Un tableau structuré

Il y a 2 techniques particulières qu'on va voir ici:

  • Pour les gros tableaux, il est possible de les diviser en trois parties :
    • En-tête ;
    • Corps du tableau ;
    • Pied de tableau.
  • Pour certains tableaux, il se peut que vous ayez besoin de fusionner des cellules entre elles.

Haut

Diviser un gros tableau

Si votre tableau est assez gros, vous aurez tout intérêt à le découper en plusieurs parties. Pour cela, il existe des balises HTML qui permettent de définir les trois « zones » du tableau :

  • l'en-tête (en haut) : il se définit avec les balises <thead> </thead>;
  • le corps (au centre) : il se définit avec les balises <tbody> </tbody>;
  • le pied du tableau (en bas) : il se définit avec les balises <tfoot> </tfoot>.

Pour un long tableau, on va recopier les cellules d'en-tête dans le pied du tableau, de façon à ne pas être perdu à la fin du tableau.

Schématiquement, un tableau en trois parties se découpe donc comme ceci:

screenshot tableau 3 parties
Un tableau découpé en plusieurs parties

Il est fortement conseillé de renseigner d'abord la partie du haut, ensuite la partie du bas, et enfin la partie principale, dans cet ordre: (le navigateur se chargera d'afficher chaque élément au bon endroit)

  1. thead
  2. tfoot
  3. tbody

Voici le code pour notre tableau:

À savoir que les balises qu'on vient de voir ne sont pas obligatoires dans tous les tableaux, c'est uniquement valable pour les tableaux longs, les petits ne les nécessitant pas forcément.

Haut

3, 2, 1… Fusioooon !

Parfois il y aura la nécessité de fusionner quelques cellules, comme par exemple pour le dernier film de ce tableau:

screenshot tableau fusion
Un tableau contenant des titres de films et leur public

Pour se faire, on va utiliser td +

  • colspan pour la fusion de colonnes : la fusion s'effectue horizontalement.
  • rowspan pour la fusion de lignes : la fusion s'effectuera verticalement.

Ensuite, il faut préciser le nombre de cellules à fusionner entre elles, comme ceci:

Ce qui donne dans le code HTML de base:

En ce qui concerne rowspan, ce n'est pas tout à fait pareil que colspan. On va poursuivre via notre exemple, mais pour ça il faut inverser l'ordre du tableau, au lieu de mettre les titres de films à gauche, on va les placer en haut:

screenshot tableau fusion
Les cellules ont été fusionnées verticalement

Pour aligner verticalementle texte des cellules du tableau, il faut utiliser la propriété vertical-align, qu'on a déjà vu dans le chapitre concernant les autres techniquesde mise en page.

Haut