Nous allons découvrir deux techniques particulières :
- 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.
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
;
- le corps (au centre) : il se définit avec les balises
;
- le pied du tableau (en bas) : il se définit avec les balises
.
Que mettre dans le pied de tableau ? Généralement, si c'est un long tableau, vous y recopiez les cellules d'en-tête. Cela permet de voir, même en bas du tableau, à quoi se rapporte chacune des colonnes. Schématiquement, un tableau en trois parties se découpe donc comme illustré à la figure suivante.
C'est un peu déroutant mais il est conseillé d'écrire les balises dans l'ordre suivant :
Dans le code, on renseigne donc d'abord la partie du haut, ensuite la partie du bas, et enfin la partie principale (
). Le navigateur se chargera d'afficher chaque élément au bon endroit, ne vous inquiétez pas.
Voici donc le code à écrire pour construire le tableau en trois parties :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| < table > < caption >Passagers du vol 377</ caption > < thead >
< tr > < th >Nom</ th > < th >Âge</ th > < th >Pays</ th > </ tr > </ thead > < tfoot >
< tr > < th >Nom</ th > < th >Âge</ th > < th >Pays</ th > </ tr > </ tfoot > < tbody >
< tr > < td >Carmen</ td > < td >33 ans</ td > < td >Espagne</ td > </ tr > < tr > < td >Michelle</ td > < td >26 ans</ td > < td >États-Unis</ td > </ tr > < tr > < td >François</ td > < td >43 ans</ td > < td >France</ td > </ tr > < tr > < td >Martine</ td > < td >34 ans</ td > < td >France</ td > </ tr > < tr > < td >Jonathan</ td > < td >13 ans</ td > < td >Australie</ td > </ tr > < tr > < td >Xu</ td > < td >19 ans</ td > < td >Chine</ td > </ tr > </ tbody > </ table > |
3, 2, 1… Fusioooon !
Dans certains tableaux complexes, vous aurez besoin de « fusionner » des cellules entre elles.
Un exemple de fusion ? Regardez le tableau à la figure suivante, qui dresse une liste de films et indique à qui ils s'adressent.
Un exemple de fusion ? Regardez le tableau à la figure suivante, qui dresse une liste de films et indique à qui ils s'adressent.
Pour le dernier film, vous voyez que les cellules ont été fusionnées : elles ne font plus qu'une. C'est exactement l'effet qu'on cherche à obtenir.
Pour effectuer une fusion, on rajoute un attribut à la balise
. Il faut savoir qu'il existe deux types de fusion :- La fusion de colonnes : c'est ce que je viens de faire dans cet exemple. La fusion s'effectue horizontalement.
- La fusion de lignes : là, deux lignes seront groupées entre elles. La fusion s'effectuera verticalement.
On utilisera l'attribut
colspan
.
On utilisera l'attribut
rowspan
.
Comme vous le savez, vous devez donner une valeur à l'attribut (que ce soit
colspan
ou rowspan
). Il faut indiquer le nombre de cellules à fusionner entre elles. Dans notre exemple, nous avons fusionné deux cellules : celle de la colonne « Pour enfants ? » et celle de « Pour adolescents ? ». On devra donc écrire :
1
| < td colspan = "2" > |
… qui signifie : « Cette cellule est la fusion de deux cellules ». Il est possible de fusionner plus de cellules à la fois (trois, quatre, cinq… autant que vous voulez).
Voilà le code HTML qui me permet de réaliser la fusion correspondant au tableau précédent :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| < table > < tr > < th >Titre du film</ th > < th >Pour enfants ?</ th > < th >Pour adolescents ?</ th > </ tr > < tr > < td >Massacre à la tronçonneuse</ td > < td >Non, trop violent</ td > < td >Oui</ td > </ tr > < tr > < td >Les bisounours font du ski</ td > < td >Oui, adapté</ td > < td >Pas assez violent...</ td > </ tr > < tr > < td >Lucky Luke, seul contre tous</ td > < td colspan = "2" >Pour toute la famille !</ td > </ tr > </ table > |
Une remarque importante : vous voyez que la ligne 19 ne contient que deux cellules au lieu de trois (il n'y a que deux balises
). C'est tout à fait normal car j'ai fusionné les deux dernières cellules entre elles. Le
indique que cette cellule prend la place de deux cellules à la fois.
Et pour la fusion verticale avec
rowspan
, on fait comment ?
Cela se complique un petit peu. Pour notre exemple, nous allons « inverser » l'ordre de notre tableau : au lieu de mettre les titres de films à gauche, on va les placer en haut.
C'est une autre façon de voir le tableau : au lieu de le construire en hauteur, on peut le construire en longueur.
C'est une autre façon de voir le tableau : au lieu de le construire en hauteur, on peut le construire en longueur.
Dans ce cas, le
colspan
n'est plus adapté, c'est un rowspan
qu'il faut utiliser :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| < table > < tr > < th >Titre du film</ th > < td >Massacre à la tronçonneuse</ td > < td >Les bisounours font du ski</ td > < td >Lucky Luke, seul contre tous</ td > </ tr > < tr > < th >Pour enfants ?</ th > < td >Non, trop violent</ td > < td >Oui, adapté</ td > < td rowspan = "2" >Pour toute la famille !</ td > </ tr > < tr > < th >Pour adolescents ?</ th > < td >Oui</ td > < td >Pas assez violent...</ td > </ tr > </ table > |
Un tableau s'insère avec la balise
et se définit ligne par ligne avec
.En résumé
- Chaque ligne comporte des cellules
(cellules normales) ou
(cellules d'en-tête). - Le titre du tableau se définit avec
. - On peut ajouter une bordure aux cellules du tableau avec
border
. Pour fusionner les bordures, on utilise la propriété CSSborder-collapse
. - Un tableau peut être divisé en trois sections :
(en-tête),
(corps) et
(bas du tableau). L'utilisation de ces balises n'est pas obligatoire.
- On peut fusionner des cellules horizontalement avec l'attribut
colspan
ou verticalement avecrowspan
. Il faut indiquer combien de cellules doivent être fusionnées.
Aucun commentaire:
Enregistrer un commentaire