Ouvrir le menu principal

Aide:Insérer un tableau (wikicode, avancé)

Niveau avancé
Nous vous recommandons de lire auparavant Aide:Insérer un tableau (wikicode)
Un tableau est un outil de mise en page, servant à mettre en évidence des données chiffrées ou des listes. Cette page d'aide présente les fonctions les plus fréquentes pour construire un tableau.

Si vous souhaitez directement obtenir des tableaux prêts à remplir, il existe une icône « Tableau » Vector toolbar insert table button.png disponible dans la fenêtre de modifications, dans l'onglet « Avancé ».

Les tableaux posant fréquemment des problèmes d'accessibilité, plusieurs instructions sont présentes sur Wikipédia:Atelier accessibilité/Bonnes pratiques#Tableaux, pour respecter les principales conventions de navigation.

Syntaxe d'un tableau élémentaireModifier

Amorcer un tableauModifier

Un tableau s’ouvre avec le code : {|.

La plupart des tableaux utilisent la classe wikitable, s'écrivant : class="wikitable". L'usage de la classe wikitable simplifie et harmonise la mise en forme des tableaux de données.

Par défaut, un tableau se positionne à gauche, mais peut être centré avec : class="wikitable centre" (attention, avec (en-US)center le tableau prend toute la largeur de la page et ne peut donc pas admettre d'image à droite et/ou à gauche).

Pour améliorer la lisibilité des grands tableaux, une alternance de gris peut être appliquée avec : class="wikitable alternance".

Un tableau se ferme avec le code : |}.

Insérer un titreModifier

Le titre du tableau est défini par : |+.

Le titre du tableau se place en début de tableau, avant la première rangée de cellules. Si plusieurs titres sont indiqués, seul le premier est pris en compte.

Insérer une nouvelle ligneModifier

Une nouvelle ligne est créée dans un tableau avec le code : |-.

Le nombre de tirets dans |- n'est pas limité, on peut en ajouter pour rendre le code wiki plus lisible ; par exemple : |------.

Le code |- est ignoré s’il n’est pas suivi de contenu suivi de nouvelles cellules.

Créer une celluleModifier

Une nouvelle cellule (ou case) est créée dans une ligne avec le code : | (si le contenu des cellules est décrit verticalement) ; ou bien : || (si contenu décrit horizontalement).

Il est possible de laisser des cellules vides. Dans la disposition à l'horizontale, il est alors important de toujours placer au moins une espace avant les deux barres verticales séparant deux cellules, afin de clairement identifier les cellules et attributs de cellules.

NB: les cellules ainsi créées se suivront sur la même ligne tant qu'un code |- n'est pas inséré. Il n'est pas possible de remplir un tableau par colonne.

Créer un en-tête de colonne ou un en-tête de ligneModifier

Un en-tête de colonne est créé par : ! scope="col".

L'en-tête de colonne se place sur la première ligne (avant la première ligne de contenu), c'est-à-dire après le premier |-.

Un en-tête de ligne est créé par : ! scope="row".

L'en-tête de ligne se place au début de chaque ligne, c'est-à-dire après chaque |-.

Par défaut dans la classe wikitable, le texte des en-têtes est affiché en gras, tous les en-têtes prennent une couleur de fond différente, et les en-têtes de colonnes sont centrés tandis que les en-têtes de lignes sont alignés à gauche

En syntaxe wiki, le point d’exclamation est utilisé à la place de la barre verticale pour définir des en-têtes.

Exemple récapitulatifModifier

Titre
Titre col. A Titre col. B Titre col. C
Titre ligne 1 Donnée 1A Donnée 1B Donnée 1C
Titre ligne 2 Donnée 2A Donnée 2B Donnée 2C
Titre ligne 3 Donnée 3A Donnée 3B Donnée 3C
 {| class="wikitable alternance center"
 |+ Titre
 |-
 |
 ! scope="col" | Titre col. A
 ! scope="col" | Titre col. B
 ! scope="col" | Titre col. C
 |-
 ! scope="row" | Titre ligne 1
 | Donnée 1A
 | Donnée 1B
 | Donnée 1C
 |-
 ! scope="row" | Titre ligne 2
 | Donnée 2A
 | Donnée 2B
 | Donnée 2C
 |-
 ! scope="row" | Titre ligne 3
 | Donnée 3A
 | Donnée 3B
 | Donnée 3C
 |}
ou
 {| class="wikitable alternance center"
 |+ Titre
 |----
 ! !! scope="col" | Titre col. A !! scope="col" | Titre col. B !! scope="col" | Titre col. C
 |----
 ! scope="row" | Titre ligne 1
 | Donnée 1A || Donnée 1B || Donnée 1C
 |----
 ! scope="row" | Titre ligne 2
 | Donnée 2A || Donnée 2B || Donnée 2C
 |----
 ! scope="row" | Titre ligne 3
 | Donnée 3A || Donnée 3B || Donnée 3C
 |}

Syntaxe supplémentaireModifier

Certaines fonctions ne sont pas compatibles avec les bonnes pratiques d'accessibilité. Pour savoir si un tableau ne comporte pas de défaut de cet ordre, utilisez le gadget « Accessibilité ». Si du rouge apparaît, le code posera des problèmes à certains lecteurs de l'encyclopédie, notamment ceux qui utilisent un lecteur d'écran. (Cf Wikipédia:Atelier accessibilité/Aide gadget).

Largeur d'un élément du tableauModifier

Pour définir la largeur d'un élément, on utilise la fonction width="x%" : en début de tableau {| width="100%", ou de cellule ||width="50%"|.

La largeur est le plus souvent exprimée en pixels (utiliser alors px au lieu de %) ou en pourcentage. L'utilisation des pourcentages est recommandée car ceux-ci permettent au tableau de s'adapter à l'écran du lecteur.

Exemple concret :

{| class="wikitable"
|+Tableau exemple
!scope=col|titre A
!scope=col|titre B
|-
|width="50%"|AAAAAAAAAAAAAAAAAAAAA
|BBB
|}
Tableau exemple
titre A titre B
AAAAAAAAAAAAAAAAAAAAA BBB

Alignement vertical du texte dans une celluleModifier

Pour définir l'alignement vertical du texte, on utilise la fonction valign="x" : tableau {| valign="top", ligne |- valign="top", case ||valign="bottom"| . Les valeurs possibles sont top et bottom

Fusionner des cellulesModifier

Il est parfois nécessaire de fusionner des cellules.

Pour fusionner horizontalement x cellules, on utilise la fonction colspan="x" (expansion de x colonnes) : ||colspan="2"|. La première cellule à gauche doit être paramétrée, l'extension se fait vers la droite. Les cellules « mangées » ne doivent pas être présentes dans le code.

Pour fusionner verticalement x cellules, on utilise la fonction rowspan="x" (expansion de x rangées) : ||rowspan="2"|. La 1re cellule du haut doit être paramétrée, l'extension se fait vers le bas. Les cases « mangées » ne doivent pas être présentes dans le code.

Exemple concret :

{| class="wikitable"
|-
!scope=col| Column 1
!scope=col| Column 2
!scope=col| Column 3
|-
| rowspan="2" | A
| colspan="2" style="text-align: center;" | B
|-
| C <!-- colonne 1 occupée par la cellule  A -->
| D
|-
| E
| rowspan="2" colspan="2" style="text-align: center;" |F
|-
| G <!-- colonnes 2+3 occupées par la cellule  F -->
|-
| colspan="3" style="text-align: center;" | H
|-
| rowspan="2" | I
| J
| rowspan="2" colspan="2" style="text-align: center;" |L
|-
| K
|-
| rowspan="2" | M
| N
| P
|-
| O
| Q
|}

Ce qui donne :

Column 1 Column 2 Column 3
A B
C D
E F
G
H
I J L
K
M N P
O Q

Tableaux triablesModifier

La fonction tri n'est pas toujours disponible, notamment avec la version mobile de Wikipédia. Les tableaux peuvent être triés. Les tableaux triables s'identifient grâce aux flèches de tri des en-têtes. Le tri est cependant à utiliser avec parcimonie dans les articles, allant à l'encontre de normes d'accessibilité.

Un tableau devient triable lorsque celui commence par : {| class="wikitable sortable".

Une colonne devient fixe et non triable lorsqu'on lui spécifie : ||class="unsortable"|.

Une ligne devient fixe et non triable lorsqu'on lui spécifie : |- class="sortbottom".

Les tableaux ayant des cellules fusionnées sur plusieurs rangées (rowspan) ou colonnes (colspan) ou ayant des cellules manquantes en fin de ligne ne se trient pas correctement. Il est recommandé d'utiliser la fusion de colonnes ou de lignes uniquement dans des cellules non triées, avec donc le code "unsortable" ou "sortbottom". Voir exemple ci-après.

Exemple bilanModifier

Le tableau ci-après est un bilan, il utilise au moins une fois chaque fonction souvent nécessaire (width, align, colspan, rowspan, sortable, style="text-align:center").

Certaines fonctions, et notamment les tableaux triables, sont incompatibles avec les lecteurs d'écran. Ces tableaux triables sont de plus inexploitables, voir illisibles sur de nombreux smartphones.

Benelux
Pays Rang Population Date du relevé
Pays-Bas 1 16 500 000 2003
Belgique 2 10 millions 2007
Luxembourg 3 0,5 million
Benelux Total : 27 M
{|class="wikitable sortable" style="text-align:center; width:80%;"
|+ Benelux
! scope="col" width="25%" | Pays
! scope="col" | Rang
! scope="col" | Population
! scope="col" | Date du relevé
|-
| Pays-Bas || 1 || align="right" | {{formatnum:16500000}} || 2003
|-
| Belgique || 2 || align="right" | 10 millions || 2007
|-
| Luxembourg || 3 || align="right" | 0,5 million ||
|-class="sortbottom"
| '''Benelux''' || colspan="3" |  '''Total : 27 M'''
|}

Voir aussiModifier