CSS :nth-of-type() Pseudo Class
La pseudo-classe :nth-of-type() CSS sélectionne les éléments du même type. Découvrez-la et pratiquez avec des exemples.
La pseudo-classe :nth-of-type() correspond aux éléments en fonction de leur position parmi les frères et sœurs du même type (le même nom de balise). Le comptage commence à 1, donc p:nth-of-type(1) est le premier <p> dans un parent, le deuxième <p> est 2, et ainsi de suite.
L'argument entre parenthèses peut être un nombre seul, le mot-clé odd ou even, ou une formule de la forme an + b. C'est donc un moyen flexible de styliser « chaque troisième élément », « toutes les rangées paires », ou « tout après le premier » sans ajouter de classes supplémentaires à votre HTML.
:nth-of-type() vs :nth-child()
C'est la distinction qui déroute le plus les gens, il est donc utile d'être précis.
:nth-child()compte tous les éléments frères, puis vérifie si l'élément correspondant est du type demandé.:nth-of-type()compte uniquement les frères du même type, en ignorant tout le reste.
Considérez ce balisage :
<div>
<h2>Heading</h2>
<p>Paragraph A</p>
<p>Paragraph B</p>
</div>p:nth-child(2)sélectionne Paragraph A — c'est le 2e enfant au total, et c'est un<p>.p:nth-of-type(2)sélectionne Paragraph B — c'est le 2e<p>, indépendamment du<h2>placé avant lui.
Utilisez :nth-of-type() lorsque le parent mélange différents types d'éléments et que vous souhaitez ne compter qu'un seul d'entre eux.
Version
Syntaxe
Syntaxe CSS de :nth-of-type()
:nth-of-type(number | odd | even | an+b) {
css declarations;
}L'argument accepte :
- Un nombre —
:nth-of-type(3)cible le 3e élément de ce type. odd/even— mots-clés pratiques pour les éléments alternés (odd= 1, 3, 5… ;even= 2, 4, 6…).- Une formule
an + b— par exemple:nth-of-type(3n)correspond à chaque 3e élément, et:nth-of-type(2n+1)est équivalent àodd. Icincommence à0et s'incrémente,aest le pas, etbest le décalage.
Exemple du sélecteur :nth-of-type() :
Exemple de code CSS :nth-of-type()
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:nth-of-type(3) {
background: #8ebf42;
}
</style>
</head>
<body>
<h2>:nth-of-type() selector example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</body>
</html>Exemple de :nth-of-type spécifié comme « odd » et « even » :
Autre exemple de code CSS :nth-of-type()
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:nth-of-type(odd) {
background: #1c87c9;
}
p:nth-of-type(even) {
background: #8ebf42;
}
</style>
</head>
<body>
<h2>nth-of-type() selector example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<p>Paragraph 4</p>
<p>Paragraph 5</p>
<p>Paragraph 6</p>
<p>Paragraph 7</p>
<p>Paragraph 8</p>
<p>Paragraph 9</p>
<p>Paragraph 10</p>
</body>
</html>Utilisation d'une formule an+b
Une formule permet de cibler un motif répété. L'exemple ci-dessous met en surbrillance chaque 3e paragraphe (3n) et, séparément, chaque paragraphe à partir du 4e (n+4) :
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:nth-of-type(3n) {
background: #8ebf42;
}
p:nth-of-type(n + 4) {
font-weight: bold;
}
</style>
</head>
<body>
<h2>nth-of-type() formula example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<p>Paragraph 4</p>
<p>Paragraph 5</p>
<p>Paragraph 6</p>
</body>
</html>Avec 3n, les paragraphes 3 et 6 reçoivent le fond vert. Avec n + 4, les paragraphes 4, 5 et 6 sont en gras (tous les paragraphes à partir du 4e).
Bon à savoir
- Le comptage commence à 1, pas à 0.
:nth-of-type(1)est la première correspondance et se comporte comme:first-of-type. - « Type » signifie le nom de la balise, pas une classe.
:nth-of-type()ne peut pas compter spécifiquement les éléments.item— il compte tous les éléments portant ce nom de balise parmi les frères. Si vous écrivez.item:nth-of-type(2), cela correspond à un élément qui est à la fois le 2e de son type et qui porte la classeitem. - Pour compter depuis la fin de la liste plutôt que depuis le début, utilisez
:nth-last-of-type().
Pages connexes
- Pseudo-classe CSS :nth-child()
- Pseudo-classe CSS :nth-last-of-type()
- Pseudo-classe CSS :first-of-type
- Pseudo-classe CSS :last-of-type
- Pseudo-classe CSS :only-of-type