L'élément table
L'élément table sert à représenter des tableaux.
Un premier exemple
<html lang="fr">
<head>
<meta charset="utf-8">
<title> Table </title>
<!-- mise en forme du tableau : encadrement des cellules,
encadrement du tableau : -->
<style>
/* cadre noir autour du tableau: */
table{
border: 2px solid black;
padding: 3px;
}
/* cadre bleu autour de chaque cellule: */
td {
border: 1px solid blue;
}
</style>
</head>
<body>
<table>
<tr> <td> Elément 1.1 </td> <td> Elément 1.2 </td><td> Elément 1.3 </td> </tr>
<tr> <td> Elément 2.1 </td> <td> Elément 2.2 </td><td> Elément 2.3 </td> </tr>
</table>
</body>
</html>
Les balises essentielles apparaissent ici :
- les balises
<table> </table>
encadrent l'ensemble du tableau. - les balises
<tr> </tr>
(table row) définissent une ligne du tableau. - les balises
<td> </td>
(table data) définissent une cellule du tableau.
Remarque : par défaut, il n' y a pas de mise en forme des tableaux (la seule mise en forme par défaut consiste en un alignement des colonnes et un retour à la ligne à chaque nouvelle ligne).
Modifier, effacer... la ligne <style> </style>
dans l'exemple ci-dessus pour voir les effets.
Un second exemple
On peut également séparer le tableau en une partie entête et une partie corps du tableau.
- les balises
<thead> </thead>
encadrent l'entête. - les balises
<th> </th>
définissent une cellule d'entête du tableau. - les balises
<tbody> </tbody>
encadrent le corps du tableau.
<html lang="fr">
<head>
<meta charset="utf-8">
<title> Films </title>
<style>
/* encadrement des cellules */
th,td {border: 1px solid black;}
/* fond rouge pour une cellule d'entête */
th{ background-color : red; }
</style>
</head>
<body>
<table> <!-- début du tableau -->
<thead> <!-- début de l'entête -->
<tr> <th> Titre de film </th> <th> Un acteur </th> </tr>
</thead> <!-- fin de l'entête -->
<tbody> <!-- début de la partie corps -->
<tr> <td> Terminator </td> <td> Arnold Schwarzenegger </td> </tr>
<tr> <td> Star Wars </td> <td> Harrison Ford </td> </tr>
</tbody> <!-- fin de la partie corps -->
</table> <!-- fin du tableau -->
</body>
</html>
Dans l'exemple ci-dessus, vous pouvez constater :
- qu'en général les navigateurs centrent par défaut le texte dans une cellule d'entête, mais pas dans une cellule de données.
- que la largeur d'une colonne s'adapte par défaut au plus long contenu d'une cellule de la colonne.
Troisième exemple
On peut également ajouter une balise de légende pour le tableau (balises <caption> </caption>
) ainsi qu'une balise
de pied du tableau (balises <tfoot> </tfoot>
).
Attention, la balise de pied doit être écrite dans le code entre le thead et le tbody, bien que ce pied s'affiche en bas du tableau par défaut.
<html lang="fr">
<head>
<meta charset="utf-8">
<title> EDT </title>
<style>
/* encadrement des cellules */
th,td {border: 1px solid black;}
/* fond vert pour une cellule d'entête */
th{ background-color : green; }
/* fond gris pour les cellules de pied et texte centré*/
tfoot td {
background-color : rgb(230,230,230);
text-align : center;
}
</style>
</head>
<body>
<table>
<caption>
Emploi du temps
</caption>
<thead>
<tr> <th> lundi </th> <th> mardi </th> </tr>
</thead>
<tfoot>
<tr> <td>4 heures</td> <td>3 heures </td> </tr>
</tfoot>
<tbody>
<tr> <td> Maths </td> <td> Sciences Physiques </td> </tr>
<tr> <td> Informatique </td> <td> Anglais </td> </tr>
<tr> <td> Informatique </td> <td> SVT </td> </tr>
<tr> <td> Français </td> <td> </td> </tr>
</tbody>
</table>
</body>
</html>