Logo
  • Créer un tableau simple
  • Structurer son tableau : thead, tbody et th
  • Styliser son tableau en CSS
  • Fusionner des cellules
  • Bonnes pratiques

Html5, les bases

2 jours • Créer et modifier des pages Web en HTML

Mon plan d'action

Jour 1 : Construire sa page en Html

Introduction

  • hello html5

Mise en route

  • introduction html
  • creation page html

Les balises HTML

  • insertion image
  • definition lien
  • creation tableau
  • creation formulaire
  • insertion audio video

Jour 2 : Gérer la forme avec les feuilles de styles CSS

Mise en route

  • css integration
  • css selecteur

Les propriétés CSS

  • css mise en couleur
  • css gestion texte
  • css marges espacements

Aller plus loin

  • publication site
← Retour à la formation

Bonjour
& bienvenue !

Veuillez entrer le mot de passe pour accéder au contenu de la formation.

(Mon email si vous avez une question)

La création de tableaux

Présenter et organiser ses contenus sous forme de tableau

Créer un tableau simple

Un tableau HTML sert à présenter des données tabulaires : comparatifs, statistiques, plannings, listes structurées. On ne l’utilise jamais pour mettre en page un site — c’est le rôle du CSS.

La création d’un tableau en HTML nécessite plusieurs balises qui s’enchaînent dans un ordre précis : table pour déclarer le tableau, tr (table row) pour créer une ligne, puis à l’intérieur, autant de td (table data) que de cellules nécessaires.

<!-- Tout tableau débute par la balise table -->
<table>
  <tr>
      <td>Ligne 1 : cellule 1</td>
      <td>Ligne 1 : cellule 2</td>
      <td>Ligne 1 : cellule 3</td>
  </tr>
  <tr>
      <td>Ligne 2 : cellule 1</td>
      <td>Ligne 2 : cellule 2</td>
      <td>Ligne 2 : cellule 3</td>
  </tr>
</table>
Par défaut, le tableau s’affiche sans aucune bordure visible. C’est normal ! Nous ajouterons les bordures en CSS juste après.

Structurer son tableau : thead, tbody et th

Un tableau bien structuré distingue l’en-tête du corps de données. C’est essentiel pour l’accessibilité et le stylisme CSS.

La balise thead regroupe les lignes d’en-tête, tbody contient les données. À l’intérieur du thead, on remplace les td par des th (table header) : ces cellules sont mises en gras par défaut et sont lues différemment par les lecteurs d’écran.

La balise caption, placée juste après l’ouverture de table, donne un titre accessible au tableau — l’équivalent du figcaption pour les images.

<table>
  <caption>Liste des participants à la formation</caption>
  <thead>
      <tr>
          <th>Nom</th>
          <th>Prénom</th>
          <th>Ville</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Dupont</td>
          <td>Marie</td>
          <td>Lyon</td>
      </tr>
      <tr>
          <td>Martin</td>
          <td>Paul</td>
          <td>Paris</td>
      </tr>
      <tr>
          <td>Durand</td>
          <td>Sophie</td>
          <td>Marseille</td>
      </tr>
  </tbody>
</table>
  • thead : en-tête du tableau — contient les intitulés de colonnes avec des balises th
  • tbody : corps du tableau — contient les données avec des balises td
  • tfoot : pied du tableau (optionnel) — utile pour afficher des totaux ou des résumés
  • caption : titre du tableau — visible et lu par les lecteurs d’écran

Styliser son tableau en CSS

Par défaut, un tableau HTML s’affiche sans bordure ni espacement. Quelques propriétés CSS suffisent à le rendre lisible.

La propriété border-collapse: collapse est indispensable : sans elle, chaque cellule affiche sa propre bordure avec un espace entre elles, ce qui donne un rendu peu esthétique.
/* Bordures fusionnées : les cellules partagent leurs bordures */
table {
  border-collapse: collapse;
  width: 100%;
}

/* Bordure et espacement sur toutes les cellules */
th, td {
  border: 1px solid #ccc;
  padding: 0.5rem 0.75rem;
  text-align: left;
}

/* Style distinctif pour l'en-tête */
th {
  background-color: #34495e;
  color: white;
}

/* Alternance de couleur pour faciliter la lecture */
tbody tr:nth-child(even) {
  background-color: #f2f2f2;
}

Fusionner des cellules

Dans certains tableaux, vous aurez besoin de fusionner des cellules entre elles. Deux attributs existent :

  • colspan : fusionne des cellules horizontalement (sur plusieurs colonnes)
  • rowspan : fusionne des cellules verticalement (sur plusieurs lignes)
Schéma de fusion avec colspan et rowspan

Fusion horizontale avec colspan

Exemple de fusion horizontale avec colspan

L’attribut colspan s’ajoute sur la cellule qui doit s’étendre. Sa valeur indique le nombre de colonnes occupées. Les cellules absorbées par la fusion doivent être supprimées du code.

<table>
  <tr>
      <td>Ligne 1 : cellule 1</td>
      <td>Ligne 1 : cellule 2</td>
      <td>Ligne 1 : cellule 3</td>
  </tr>
  <tr>
      <td>Ligne 2 : cellule 1</td>
      <!-- Cette cellule occupe 2 colonnes : je supprime la cellule 3 -->
      <td colspan="2">Cellule fusionnée (colonnes 2 et 3)</td>
  </tr>
</table>

Fusion verticale avec rowspan

Exemple de fusion verticale avec rowspan

L’attribut rowspan fonctionne sur le même principe, mais verticalement. La cellule fusionnée s’étend sur plusieurs lignes. Attention au piège : dans les lignes suivantes, il faut retirer la cellule déjà occupée par le rowspan.

Le piège classique des fusions : quand une cellule est étendue avec rowspan ou colspan, les cellules qu’elle absorbe doivent disparaître du code. Si vous les laissez, le navigateur ajoutera des cellules en trop et votre tableau sera décalé.
<table>
  <tr>
      <td>Ligne 1 : cellule 1</td>
      <td>Ligne 1 : cellule 2</td>
      <td>Ligne 1 : cellule 3</td>
  </tr>
  <tr>
      <td>Ligne 2 : cellule 1</td>
      <td>Ligne 2 : cellule 2</td>
      <!-- Cette cellule occupe 2 lignes -->
      <td rowspan="2">Fusion lignes 2 et 3</td>
  </tr>
  <tr>
      <!-- ⚠️ Seulement 2 cellules ici !
           La 3e colonne est déjà occupée par le rowspan -->
      <td>Ligne 3 : cellule 1</td>
      <td>Ligne 3 : cellule 2</td>
  </tr>
</table>

Bonnes pratiques

  • Toujours structurer son tableau avec thead, tbody et th — même pour un petit tableau. Les lecteurs d’écran s’appuient sur cette structure pour lire les données cellule par cellule en annonçant l’en-tête correspondant.
  • Ajouter un caption pour donner un titre accessible à votre tableau.
  • Ne jamais utiliser un tableau pour la mise en page d’un site. Les tableaux sont réservés aux données tabulaires. Pour la mise en page, utilisez Flexbox ou CSS Grid (que nous verrons dans le module CSS).
  • Garder ses tableaux simples : si un tableau nécessite de nombreuses fusions imbriquées, c’est souvent le signe qu’il faudrait le découper en plusieurs tableaux plus lisibles.
exercice

Mise en pratique

Objectifs : Créer, structurer et styliser des tableaux HTML.

Consignes :

  • Exercice 01 — Créez un tableau simple de 3 colonnes et 4 lignes présentant des données de votre choix (ex : un comparatif de smartphones, un planning de la semaine, un palmarès…). Ajoutez le CSS pour les bordures et l’alternance de couleurs.
  • Exercice 02 — Reprenez votre tableau et structurez-le avec thead, tbody, th et caption. Stylisez l’en-tête différemment du corps.
  • Exercice 03 — Reproduisez le tableau ci-dessous en utilisant colspan et rowspan. Attention au nombre de cellules par ligne !

Durée : 35 min

Dossier : JOUR 1 - HTML > 05-Tableaux

  • ex-tableau01-simple.html
  • ex-tableau02-structure.html
  • ex-tableau03-fusion.html

Ressources & références

  • Developper Mozilla | L'élément tableArticle
  • Developper Mozilla | thead, tbody, tfootArticle
  • AcceDe Web | Tableaux de données accessiblesArticle
  • CSS Tricks | A Complete Guide to the Table ElementArticle
  • Tables Generator | Générateur de tableaux HTMLOutil
  • Developper Mozilla | border-collapseRessource
← Précédent Définir la navigation et les liens hypertextes Suivant → La création de formulaires
Retour à l'accueil de la formation Html5, les bases