Agitez votre trafic avec Oseox, Plus de 400 cours gratuits.
Profitez de nos meilleurs conseils, Recevez notre newsletter pro !
La première réflexion à avoir quand on va créer un tableau c'est de savoir ce qu'on va mettre dedans. Ensuite, il faut s'interroger sur les relations entre les données contenues dans le tableau. C'est ainsi qu'on peut lui trouver un titre, mettre en valeur tel ou tel contenu. Il y a 4 sortes de balises à connaitre pour faire des tableaux en XHTML.
L'exemple suivant nous montre donc ce que peut être un tableau à la base.
Aperçu :
| titre cellule1 | titre cellule2 |
|---|---|
| ligne1 cellule1 | ligne1 cellule2 |
| ligne2 cellule1 | ligne2 cellule2 |
Code XHTML :
<table>
<tr>
<th>titre cellule1</th>
<th> titre cellule2</th>
</tr>
<tr>
<td>ligne1 cellule1</td>
<td> ligne1 cellule2</td>
</tr>
<tr>
<td>ligne2 cellule1</td>
<td> ligne2 cellule2</td>
</tr>
</table>
Ce tableau contient donc 3 lignes et 2 cellules. Sur la première ligne se trouvent les titres de chaque cellule.
Pour fusionner plusieurs colonnes, on utilise l'attribut colspan. On lui donne une valeur numérique selon le nombre de colonnes à fusionner. Dans l'exemple précédent, essayons par exemple de fusionner les deux colonnes de la deuxième ligne.
Aperçu :
| titre cellule1 | titre cellule2 |
|---|---|
| ligne 1 cellule 1 et cellule2 fusionnées | |
| ligne2 cellule1 | ligne2 cellule2 |
Code XHTML :
<table>
<tr>
<th>titre cellule1</th>
<th> titre cellule2</th>
</tr>
<tr>
<td colspan="2">ligne 1 cellule 1 et cellule2 fusionnées</td>
</tr>
<tr>
<td>ligne2 cellule1</td>
<td> ligne2 cellule2</td>
</tr>
</table>
En appliquant rowspan à une balise td, on a les mêmes résultats sur les lignes. Comme colspan, on lui assigne une valeur numérique.
Aperçu :
| titre cellule1 | titre cellule2 |
|---|---|
| cellule1 ligne1 et 2 fusionnées | ligne1 cellule2 |
| ligne2 cellule2 |
Code XHTML :
<table>
<tr>
<th>titre cellule1</th>
<th> titre cellule2</th>
</tr>
<tr>
<td rowspan="2">cellule1 ligne1 et 2 fusionnées </td>
<td> ligne1 cellule2</td>
</tr>
<tr>
<td> ligne2 cellule2</td>
</tr>
</table>
Compartimenter un tableau consiste à le diviser en 3 parties bien distinctes. Lorsque le tableau est très grand, il est intéressant de le découper en compartiments. Trois zones différentes du tableau sont définies chacune par la balise associée :
Généralement, l'entête contient les titres de chaque cellule. L'entête sera donc la partie où il y a les th. La partie tbody est le corps du tableau lui-même. Il correspond au contenu. Dans le pied du tableau, on met des remarques, ou l'auteur, ou la source.
Certains se servent aussi de tfoot pour y placer des repères, en répétant tout simplement ce qu'il y a dans thead par exemple. La norme W3C exige qu'on mette la balise tfoot avant tbody dans le code si on veut que notre page soit valide.
L'attribut caption permet de mettre une légende ou un titre sur le tableau. Il doit décrire en quelques mots ce que contient le tableau.
Avec toutes ces nouvelles notions sur le tableau, en voici encore un autre exemple avec un tableau plus élaboré.
Aperçu :
| Nom | Mathématiques | Sciences naturelles | Physique | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Examen | Devoir | Moyenne | Examen | Devoir | Moyenne | Examen | Devoir | Moyenne | |
| Résultats publiés le 01/09/2008 | |||||||||
| Assan Tessan | 10 | 14 | 12 | 12 | 18 | 15 | 13 | 11 | 12 |
| Bernard Chateau | 8 | 10 | 9 | 8 | 9 | 8,5 | 13 | 6 | 9,5 |
| Helmut Shröder | 12 | 18 | 15 | 8 | 9 | 8,5 | 13 | 6 | 9,5 |
| Willy Jons | 13 | 6 | 9,5 | 8 | 9 | 8,5 | 8 | 10 | 9 |
Code XHTML :
<table>
<caption>Notes des élèves de la classe de sixième</caption>
<thead>
<tr>
<th rowspan="2">Nom</th>
<th colspan="3" abbr="math">Mathématiques</th>
<th colspan="3" abbr="sn">Sciences naturelles</th>
<th colspan="3" abbr="phys">Physique </th>
</tr>
<tr>
<th>Examen</th>
<th>Devoir</th>
<th>Moyenne</th>
<th>Examen</th>
<th>Devoir</th>
<th>Moyenne</th>
<th>Examen</th>
<th>Devoir</th>
<th>Moyenne</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="10">Résultats publiés le 01/09/2008</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>Assan Tessan</td>
<td>10</td>
<td>14</td>
<td>12</td>
<td>12</td>
<td>18</td>
<td>15</td>
<td>13</td>
<td>11</td>
<td>12</td>
</tr>
<tr>
<td>Bernard Chateau</td>
<td>8</td>
<td>10</td>
<td>9</td>
<td>8</td>
<td>9</td>
<td>8,5</td>
<td>13</td>
<td>6</td>
<td>9,5</td>
</tr>
<tr>
<td>Helmut Shröder</td>
<td>12</td>
<td>18</td>
<td>15</td>
<td>8</td>
<td>9</td>
<td>8,5</td>
<td>13</td>
<td>6</td>
<td>9,5</td>
</tr>
<tr>
<td>Willy Jons</td>
<td>13</td>
<td>6</td>
<td>9,5</td>
<td>8</td>
<td>9</td>
<td>8,5</td>
<td>8</td>
<td>10</td>
<td>9</td>
</tr>
</tbody>
</table>
L'accessibilité est un des principes fondamentaux de XHTML. Rendre la page accessible à tout le monde, même aux personnes malvoyantes est l'un de ses objectifs. EnXHTML, il y a de nombreuses balises pour l'accessibilité des tableaux. Il y a notamment celles très utilisées en CSS, dont on parlera dans le tutoriel CSS. Mais dans ce chapitre on va surtout parler de deux notions: summary et abbr summary
La balise table peut avoir un attribut qui s'appelle summary. Le rôle de cet attribut est pareil à celui de la balise caption sauf qu'il permet une description plus longue. Ceci est fait pour que les personne malvoyantes accèdent à une description du contenu. Il n'est donc pas affiché par les navigateurs habituels. On l'insère dans la balise table comme suit
<table summary="Notes des élèves de la classe de sixième du collège de France pour l'année scolaire 2008-2009">
L'attribut abbr quant à lui est un attribut de la balise h. Il permet de définir un titre plus court. Toujours pour les navigateurs des malvoyants, l'objectif est d'éviter la répétition d'un titre de colonne trop long à chaque ligne.
Aperçu :
| Mathématiques ... | Sciences naturelles ... | Physique ... |
|---|
Code XHTML :
<tr>
<table>
<th abbr="math">Mathématiques... </th>
<th abbr="sn">Sciences naturelles... </th>
<th abbr="phys">Physique... </th>
</tr>
</table>
Une question ? Venez la poser sur notre forum développement web !