Une remarque ? Une suggestion ?...

Merci de participer à l'amélioration de ce site. Prenez le temps de rédiger votre remarque le plus précisément possible :

Les pseudo-classes :nth-of-type() et :nth-last-of-type().

:nth-of-type()
:nth-last-of-type()

Résumé des caractéristiques du sélecteur :nth-of-type()

Description rapide
Pseudo-classe désignant un élément à partir de son numéro en ne comptant que les éléments du même type.
Statut
Standard
Valeurs prédéfinies
evan | odd
Module W3C
Sélecteurs
Références (W3C)
 🡇  
 🡅  
Statut du document:: WD (document de travail)

Statut du document:: REC (recommandation)

Description des pseudo-classes :nth-of-type() et :nth-last-of-type().

Définition de base.

Ces pseudo-classes ciblent des éléments en fonction de leur position dans l'arbre du document, le comptage s'effectuant séparément pour chacun des types d'éléments : les div sont comptés séparément des p par exemple.

  • :nth-of-type() : les comptages s'effectuent dans l'ordre habituel, depuis le premier jusqu'au dernier.
  • :nth-last-of-type() : les comptages se font en ordre inverse, en commençant par le dernier enfant pour terminer par le premier.

La numérotation des enfants commence à 1. :nth-of-type(1) et donc équivalent à :first-of-type, et :nth-last-of-type(1) est équivalent à :last-of-type.

Alterner les mises en forme.

Les mots-clé odd (impair) et even (pair) peuvent être utilisés entre les parenthèses et permettent de définir facilement des mises en forme alternées.

Une autre syntaxe permet d'alterner plus de deux mises en forme : :nth-of-type(An+B).
A est le nombre de mises en forme à alterner.
B est le numéro de la mise en forme en cours de définition.

Par exemple, la règle :nth-of-type(3n+1){outline:1px solid;} spécifie qu'il y a trois mises en forme, et que cette définition concerne la première d'entre elle. Cette règle applique un contour aux éléments numéro 1, 4, 7, etc.

Les autres pseudo-classes en rapport.

Voyez aussi ces autres pseudo-classes, qui permettent également de cibler des éléments en fonction de leur numéro d'ordre dans l'arbre du document :

  • :first-child : le premier enfant du parent.
  • :last-child : le dernier enfant du parent.
  • :nth-child() : les éléments qui sont en une position donnée.
  • :nth-last-child() : les éléments qui sont en une position donnée, en commençant le comptage par la fin.
  • :only-child : les éléments qui sont 'fils unique', c'est à dire dont le parent n'a pas d'autres enfants.

Pseudo-classes :first-child, :last-child, :nth-child(), :nth-last-child() et :only-child
Les éléments ciblés par ces pseudo-classes dans le cas d'un tableau
de sept colonnes et une ligne.
Dans un souci de simplification la balise tbody n'a pas été représentée.
 

  • :first-of-type : les éléments qui sont les premiers dans le même type qu'eux.
  • :last-of-type : les éléments qui sont les derniers dans le même type qu'eux.
  • :only-of-type désigne les éléments dont le parent n'a pas d'autres enfants du même type.

Pseudo-classes :first-of-type, :last-of-type, :nth-of-type(), :nth-last-of-type() et :only-of-type
Les éléments ciblés par les pseudo-classes ...of-type
dans le cas d'un tableau comportant des cellules titre th et des cellules td.
 

Exemple avec les pseudo-classes :nth-of-type() et :nth-last-of-type().

Utilisation basique de :nth-of-type() et :nth-last-of-type().

L'élément #exemple1 ci-dessous contient aussi bien des enfants du type div que d'autres du type p. Il convient d'effectuer un comptage séparé pour chacun des types d'éléments.

div
n°1
div
n°2

p
n°1

div
n°3

p
n°2

div
n°4
div
n°5

p
n°3

p
n°4

div
n°6

Mises en forme alternées sur deux valeurs.

Les valeurs odd (impair) et even (pair) utilisées avec :nth-of-type() ou :nth-last-of-type() permettent d'obtenir facilement une mise en forme alternée.

Néanmoins, si les types d'éléments sont mélangés, l'alternance paire/impaire ne sera pas visible sur le résultat.

div
n°1
div
n°2

p
n°1

div
n°3

p
n°2

div
n°4
div
n°5

p
n°3

p
n°4

div
n°6

Alterner plus de deux mises en forme.

Il est possible de construire des mises en forme alternées sur plus de 2 valeurs en utilisant une syntaxe du genre :nth-child(An+B). Mais le résultat risque d'être encore plus brouillon qu'avec deux valeurs. Pour plus de lisibilité, notre exemple n'applique des contours que sur les éléments div, en laissant les éléments p inchangés.
Les trois mises en forme concernent les contours successivement rouge, magenta, et vert.

div
n°1
div
n°2

p
n°1

div
n°3

p
n°2

div
n°4
div
n°5

p
n°3

p
n°4

div
n°6

Prise en charge par les navigateurs (compatibilité).

Les pseudo-classes :nth-of-type() et :nth-last-of-type() sont maintenant très bien reconnues par les navigateurs.

1
:nth-of-type()
2
:nth-last-of-type()
Estimation de la prise en charge en pourcentage du parc actuel.
98%
98%

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Androïd Brower

Chrome

Chrome pour Androïd

Edge

Firefox

Firefox pour Androïd

Internet Explorer

Opéra

Opéra Mobile

Safari

Safari sur IOS

Samsung Internet

Voir aussi : pseudo-classes relatives au DOM.

Toutes les pseudo-classes listées ci-dessous permettent de désigner un élément par rapport à sa position dans le DOM, encore appelé "arbre du document" en français.

  • :root :
  • Pseudo-classe désignant l'élément racine.

  • :empty :
  • Pseudo-classe désignant les éléments sans contenu.

  • :first-child :
  • Pseudo-classe désignant le premier enfant d'un élément.

  • :last-child :
  • Pseudo-classe désignant le dernier enfant d'un élément.

  • :nth-child() :
  • Pseudo-classe désignant un descendant d'après son numéro.

  • :nth-last-child() :
  • Pseudo-classe désignant un élément à partir de son numéro, en commençant par la fin.

  • :only-child :
  • Pseudo-classe désignant les éléments qui sont fils uniques de leur parent.

  • :first-of-type :
  • Pseudo-classe désignant les premiers éléments de chaque type.

  • :last-of-type :
  • Pseudo-classe désignant les derniers éléments de chaque type.

  • :nth-of-type() :
  • Pseudo-classe désignant un élément à partir de son numéro en ne comptant que les éléments du même type.

  • :nth-last-of-type() :
  • Pseudo-classe désignant un élément à partir de son numéro en ne comptant que les éléments du même type et en commençant par la fin.

  • :only-of-type :
  • Pseudo-classe désignant les éléments qui sont fils unique dans leur type.