<tr> : l'élément de ligne d'un tableau

L'élément HTML <tr> définit une ligne de cellules dans un tableau. Une ligne peut être constituée d'éléments <td> (les données des cellules) et <th> (les cellules d'en-têtes).

Si on veut qu'une cellule s'étende sur plusieurs lignes/colonnes, on pourra utiliser l'attribut colspan ou rowspan qui indiquent respectivement le nombre de colonnes / lignes sur lequel s'étendre (la valeur par défaut étant 1).

La construction de tableau peut parfois demander un peu de pratique. Au-delà des exemples présentés ci-après, vous pouvez consulter les tutoriels sur les tableaux HTML afin d'apprendre comment utiliser ces éléments et attributs HTML afin d'organiser vos données tabulaires.

Attributs

À l'instar de tous les éléments HTML, cet élément inclut les attributs universels.

Attributs dépréciés ou obsolètes

alignObsolète depuis HTML5
Cet attribut à valeurs définit l'alignement horizontal pour le contenu de chaque cellule. Les valeurs possibles sont :
  • left : le contenu de la cellule est aligné à gauche de la cellule
  • center : le contenu de la cellule est centré horizontalement
  • right : le contenu de la cellule est aligné à droite de la cellule
  • justify : insert des espaces dans le contenu textuel afin que le contenu de la cellule soit justifié
  • char : aligne le contenu textuel de la cellule selon un caractère spécial avec un décalage minimum défini par les attributs  char et charoff Non implémenté (voir bug 2212).

Si cet attribut n'est pas renseigné, la valeur est héritée du nœud parent.

Notes : Cet attribut est devenu obsolète dans le dernier standard et ne doit donc plus être utilisé.
  • Pour réaliser les mêmes effets que les valeurs left, center, right ou justify, il faut utiliser la propriété CSS text-align sur l'élément
  • Pour réaliser le même effet qu'avec la valeur char. Il est possible, en CSS3, d'utiliser la valeur de l'attribut char comme valeur de la propriété text-align. Non implémenté.
bgcolor Obsolète depuis HTML5
Cet attribut définit la couleur d'arrière-plan de toutes les cellules de la colonne. C'est un code à 6 chiffres hexadécimaux comme défini par le sRGB. Il est précédé d'un '#'. Un de ces seize mot-clé peut également être utilisé.
black = "#000000" green = "#008000"
silver = "#C0C0C0" lime = "#00FF00"
gray = "#808080" olive = "#808000"
white = "#FFFFFF" yellow = "#FFFF00"
maroon = "#800000" navy = "#000080"
red = "#FF0000" blue = "#0000FF"
purple = "#800080" teal = "#008080"
fuchsia = "#FF00FF"

aqua = "#00FFFF"

Note d'utilisation : Il est fortement conseillé de ne pas utiliser cet attribut car celui-ci n'est pas un attribut standard et n'a été implémentée que sous certaines versions d'Internet Explorer. L'élément <tr> doit être mis en forme grâce au CSS. Pour fournir un effet semblable à celui achevé par l'attribut bgcolor, il est possible d'utiliser la propriété CSS background-color.
charObsolète depuis HTML5
Cet attribut est utilisé pour définir le caractère sur lequel aligner les cellules d'une colonne. Les valeurs de cet attribut contiennent généralement un point (.) pour aligner des nombres ou des valeurs monétaires. Si l'attribut align ne vaut pas char, l'attribut est ignoré.
Note d'utilisation : Cet attribut est obsolète et il est donc fortement déconseillé de l'utiliser. De fait, il n'est pas supporté par le dernier standard. Pour réaliser le même effet qu'avec char, il faut utiliser CSS3 en attribuant la même valeur à la propriété text-align.Non implémenté.
charoff Obsolète depuis HTML5
Cet attribut est utilisé pour indiquer le décalage, en nombre de caractères, depuis le caractère défini par l'attribut char à appliquer au contenu des cellules.
Note d'utilisation: Cet attribut ne doit plus être utilisé car il est maintenant obsolète et n'est plus supporté dans le dernier standard.
valign Obsolète depuis HTML5
Cet attribut définit l'alignement vertical du texte des cellules de la ligne. Les valeurs possibles de cet attribut sont :
  • baseline qui alignera le texte à la ligne la plus basse possible en utilisant la ligne de base des caractères. Si les caractères ont tous la même taille, cela aura le même effet que la valeur bottom.
  • bottom qui placera le texte au plus bas de la cellule
  • middle qui centrera verticalement le texte dans la cellule
  • top qui placera le texte au plus haut de la cellule.
Note: Cet attribut est obsolète dans le dernier standard, la propriété CSS vertical-align doit être utilisée à la place.

Exemples

Exemple simple

HTML

<table>
  <tr>
    <th>Prénom</th><th>Nom</th>
  </tr>
  <tr>
    <td>Jean</td> <td>Biche</td>
  </tr>
  <tr>
    <td>Marcel</td> <td>Patulacci</td>
  </tr>
</table>

Résultat

Note : Pour plus d'exemples, voir la page <table>.

Étendre sur plusieurs lignes ou colonnes

On utilise ici les attributs rowspan et colspan pour étendre des cellules sur plusieurs lignes et colonnes.

HTML

<table>
  <tr>
    <th rowspan="2">Nom</th>
    <th rowspan="2">ID</th>
    <th colspan="2">Dates</th>
    <th rowspan="2">Solde</th>
  </tr>
  <tr>
    <th>Inscription</th>
    <th>Résiliation</th>
  </tr>
  <tr>
    <th>Margaret Nguyen</td>
    <td>427311</td>
    <td><time datetime="2010-06-03">3 juin 2010</time></td>
    <td>n/a</td>
    <td>0</td>
  </tr>
  <tr>
    <th>Edvard Galinski</td>
    <td>533175</td>
    <td><time datetime="2011-01013">13 janvier 2011</time></td>
    <td><time datetime="2017-04008">8 avril 2017</time></td>
    <td>37</td>
  </tr>
  <tr>
    <th>Hoshi Nakamura</td>
    <td>601942</td>
    <td><time datetime="2012-07-23">23 juillet 2012</time></td>
    <td>n/a</td>
    <td>15</td>
  </tr>
</table>

CSS

table { 
  border: 1px solid black;
}

th, td {
  border: 1px solid black;
}

Résultat

Distinguer en-tête et contenu

On utilise ici l'élément <thead> et l'élément <tbody> pour distinguer l'en-tête du tableau et le contenu de celui-ci.

HTML

<table>
  <thead>
    <tr>
      <th rowspan="2">Nom</th>
      <th rowspan="2">Identifiant</th>
      <th colspan="2">Dates</th>
      <th rowspan="2">Solde</th>
    </tr>
    <tr>
      <th>Inscription</th>
      <th>Résiliation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Margaret Nguyen</td>
      <td>427311</td>
      <td><time datetime="2010-06-03">3 juin 2010</time></td>
      <td>n/a</td>
      <td>0</td>
    </tr>
    <tr>
      <th scope="row">Edvard Galinski</td>
      <td>533175</td>
      <td><time datetime="2011-01013">13 janvier 2011</time></td>
      <td><time datetime="2017-04008">8 avril 2017</time></td>
      <td>37</td>
    </tr>
    <tr>
      <th scope="row">Hoshi Nakamura</td>
      <td>601942</td>
      <td><time datetime="2012-07-23">23 juillet 2012</time></td>
      <td>n/a</td>
      <td>15</td>
    </tr>
  </tbody>
</table>

CSS

table {
  border: 1px solid black;
}

th, td {
  border: 1px solid black;
}

Résultat

Mise en forme simple

Il est possible d'utiliser CSS afin de modifier l'apparence d'une ligne d'un tableau. Tous les styles appliqués à un élément <tr> auront un impact sur les cellules de cette ligne (sauf si celles-ci indiquent un style par dessus).

Modifions ici la police et la couleur d'arrière-plan pour la ligne d'en-tête.

HTML

<table>
  <thead>
    <tr>
      <th rowspan="2">Nom</th>
      <th rowspan="2">ID</th>
      <th colspan="2">Dates</th>
      <th rowspan="2">Solde</th>
    </tr>
    <tr>
      <th>Inscription</th>
      <th>Résiliation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Margaret Nguyen</td>
      <td>427311</td>
      <td><time datetime="2010-06-03">3 juin 2010</time></td>
      <td>n/a</td>
      <td>0</td>
    </tr>
    <tr>
      <th scope="row">Edvard Galinski</td>
      <td>533175</td>
      <td><time datetime="2011-01013">13 janvier 2011</time></td>
      <td><time datetime="2017-04008">8 avril 2017</time></td>
      <td>37</td>
    </tr>
    <tr>
      <th scope="row">Hoshi Nakamura</td>
      <td>601942</td>
      <td><time datetime="2012-07-23">23 juillet 2012</time></td>
      <td>n/a</td>
      <td>15</td>
    </tr>
  </tbody>
</table>

CSS

table {
  border: 1px solid black;
  font: 16px "Open Sans", Helvetica, Arial, sans-serif;
}

thead > tr {
  background-color: rgb(228, 240, 245);
}

th, td {
  border: 1px solid black;
  padding:4px 6px;
}

On utilise ici la propriété font sur l'élément <table> afin d'avoir une police plus agréable. Ensuite, pour tous les éléments <tr> qui sont les fils de <thead> (c'est-à-dire pour les lignes de l'en-tête), on indique une couleur d'arrière-plan bleu clair. Cela se propagera à l'ensemble des cellules de l'en-tête.

Résultat

Résumé technique

Catégories de contenu Aucune.
Contenu autorisé Zéro ou plusieurs éléments <td> ou <th>, éventuellement mélangés. Les éléments de script (<script> et <template>) sont également utilisés.
Omission de balises La balise de début est obligatoire. La balise de fin peut être absente si l'élément <tr> est immédiatement suivi par un élément <tr> ou si l'élément du groupe parent ((<thead>, <tbody> ou <tfoot>) n'a plus d'autre contenu.
Parents autorisés Un élément <table> (uniquement si le tableau ne possède pas d'élément <body> et uniquement après un élément  <caption>, <colgroup> ou <thead>) , <thead>, <tbody> ou <tfoot>.
Rôles ARIA autorisés Tous les rôles sont autorisés.
Interface DOM HTMLTableRowElement

Spécifications

Spécification État Commentaires
HTML Living Standard
La définition de 'tr element' dans cette spécification.
Standard évolutif
HTML5
La définition de 'tr element' dans cette spécification.
Recommendation

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung Internet
trChrome Support complet 1Edge Support complet OuiFirefox Support complet 1IE Support complet OuiOpera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Oui
align
Obsolète
Chrome ? Edge Support complet OuiFirefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 915
IE Support complet OuiOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?
bgcolor
Obsolète
Chrome ? Edge Aucun support NonFirefox Aucun support NonIE Support complet OuiOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support NonOpera Android ? Safari iOS ? Samsung Internet Android ?
char
Obsolète
Chrome ? Edge Support complet OuiFirefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 2212
IE Support complet OuiOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
charoff
Obsolète
Chrome ? Edge Support complet OuiFirefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 2212
IE Support complet OuiOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 2212
Opera Android ? Safari iOS ? Samsung Internet Android ?
valign
Obsolète
Chrome ? Edge Support complet OuiFirefox Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 915
IE Support complet OuiOpera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Aucun support Non
Notes
Aucun support Non
Notes
Notes See bug 915
Opera Android ? Safari iOS ? Samsung Internet Android ?

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Obsolète. Les nouveaux sites web ne doivent pas utiliser cette fonctionnalité.
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Voir aussi

  • Les autres éléments HTML relatifs aux tableaux : <caption>, <col>, <colgroup>, <table>, <tbody>, <td>, <tfoot>, <th>, <thead>.
  • Les propriétés et pseudo-classes CSS qui sont particulièrement utiles pour mettre en forme l'élément <tr> :
    • La pseudo-classe :nth-child qui permet de définir l'alignement des cellules dans la colonne ou sur une ligne
    • La propriété text-align qui permet d'aligner l'ensemble des cellules par rapport au même caractère (comme le point ou la virgule).