Les tableaux (ou tables) dans HTML
ressemblent aux tableaux de données que permettent de créer les
tableurs (et n'ont rien à voir avec les tables d'une base de données
relationnelles).
Si au moment de leur invention par Netscape, les tableaux
étaient effectivement prévus pour représenter des données tabulaires,
cette utilisation initiale à été rapidement détournée par les
concepteurs de site pour effectuer la mise en page des documents.
grille de mise en page
Cette technique est héritée de la mise en page papier qui se fait à
partir d'une grille : une série de lignes horizontales et de colonnes
verticales, qui partagent la page de manière harmonieuse. On peut
ainsi donner de l'importance à certaines zones (ligne, colonne ou
jonction des deux) et guider le chemin d'exploration et de lecture.
La grille et ses éléments peuvent être directement visibles et
clairement marqués par des cadres, filets ou colonnages, mais ils
peuvent aussi être agencés d'une façon plus subtile qui ne se
remarque que si l'on recherche l'architecture sous-jacente de la mise
en page.
Dans les années 1995-2000, les tableaux permettaient d'agencer les
blocs d'informations et les images des pages car les feuilles de
style CSS en étaient à
leur début et n'étaient pas implémentées de façon satisfaisante par
les navigateurs. Les tableaux étaient alors les seules constructions
HTML qui permettaient d'avoir des couleurs de fond et/ou des images
de fond différentes suivant les blocs et d'avoir des élements
positionnés en vis à vis les uns à côté des autres.
Jusque vers 2007, 2008, les tableaux dans HTML étaient donc
essentiellement utilisés pour mettre au point des grilles d'affichage
et de mise en page. Le formatage qu'ils permettent est extrêmement
puissant et toutes les pages HTML professionnelles étaient
construites avec des tableaux imbriqués.
Aujourd'hui, cette utilisation des tableaux est totalement abandonnée
au profit des feuilles de style CSS
qui offrent des possibilités démultipliées dans le positionnement et
la mise en forme des éléments, et qui sont bien prises en compte et
implémentées par les navigateurs.
On est donc revenu à l'utilisation qui était prévue originellement
pour les tableaux : la présentation de données tabulaires.
Structure minimum
Un tableau est constitué de lignes qui
contiennent des cellules. La structure est composée au minimum avec
trois éléments :
table
est l'élément principal qui marque le début et la fin du tableau.
Par défaut une table prend la place maximum pour afficher son
contenu.
td
définit une cellule (cell) dans une ligne. Par défaut, le contenu
d'une cellule est centré verticalement.
structure minimum d'un tableau
Comme on peut le constater à l'affichage de l'exemple, la mise en
forme par défaut est pratiquement inexistante. Il faut donc utiliser
des règles de style CSS
pour rendre un tableau "présentable".
On a ici un exemple minimum de mise en forme. Voir dans le tutoriel
CSS la partie consacrée
aux tableaux.
Structure avec sémantique
Aux 3 éléments de base on peut en ajouter
d'autres si on veut que la définition du tableau soit sémantiquement
correcte :
thead
groupe une ou plusieurs lignes servant d'en-tête au tableau,
th
définit une cellule servant de titre pour une colonne ou une ligne,
tbody
groupe une ou plusieurs lignes représentant le corps au tableau (de
données qui ne sont ni dans l'en-tête ni dans le pied),
tfoot
groupe une ou plusieurs lignes servant de pied au tableau.
structure avec sémantique d'un tableaustructure vue en 3D
Si il y a un pied au tableau, cet élément tfoot
doit être placé dans le code HTML
directement après l'élément d'en-tête thead
et avant l'élément tbody.
Le navigateur le placera visuellement en bonne position à la fin du
tableau. Cette particularité existe pour des raisons d'accessibilité
: les outils de lecture de page peuvent donner immédiatement les
informations pertinentes (comme les totaux par exemple) sans que la
totalité du tableau doivent être parcourue.
Catalogue Lego Junior
Ecrivez le code HTML
du tableau permettant d'obtenir le résultat ci-dessous.
Le contenu d'une cellule peut être bien sûr du texte, mais également
n'importe quel autre élément HTML,
en particulier des éléments embarqués comme des images.
Le positionnement de zones de formulaire peut également être
facilement réalisée avec un tableau.
Catalogue avec images et liens
catalogue avec images et liens
Ecrivez le code HTML du tableau permettant d'obtenir le résultat ci-contre.
Les noms des boîtes sont des liens
qui doivent s'ouvrir dans un nouvel onglet. Les liens pointent
respectivement sur :
Les image se trouvent dans le dossier ../exemples/lego.
Leur nom est la référence de la boîte et elles sont au format jpg.
Par exemple l'image pour la référence 12345 aura comme nom 12345.jpg.
Il est possible de fusionner des cellules horizontales contigües (td ou th) avec
l'attribut colspan. La valeur de l'attribut est le
nombre de cellules qui sont fusionnées sur la ligne.
fusion horizontale avec colspan
Fusion verticale avec rowspan
La fusion de cellules verticales (td ou th) est
possible avec l'attribut rowspan. La valeur de
l'attribut est le nombre de cellules qui sont fusionnées dans la
colonne.
fusion verticale avec rowspan
Fusion lignes et colonnes
Ecrivez le code HTML du tableau permettant d'obtenir le résultat ci-dessous.