:nth-last-child
Baseline Widely available *
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
La fonction de pseudo-classe CSS :nth-last-child permet de cibler les éléments qui possèdent an+b-1 nœud frères qui les suivent pour un même élément parent avec un indice n entier qui est incrémenté à partir de 0. Avec CSS3, il était nécessaire que l'élément ciblé ait un élément parent, cette restriction a été levée en CSS4.
Exemple interactif
p { font-weight: bold; } li:nth-last-child(-n + 3) { border: 2px solid orange; margin-top: 1px; } li:nth-last-child(even) { background-color: lightyellow; } <p>Les huit incendies de forêt les plus meurtriers :</p> <ol reversed> <li>Feu de Matheson</li> <li>Feu de Miramichi</li> <li>Feux de 1997 en Indonésie</li> <li>Feu de Thumb</li> <li>Feu de Great Hinckley</li> <li>Feu de Cloquet</li> <li>Feu de Kursha-2</li> <li>Feu de Peshtigo</li> </ol> Syntaxe
:nth-last-child(<nth> [of <complex-selector-list>]?) { /* ... */ } Parameters
La pseudo-classe nth-last-child prend un seul argument qui représente le motif de répétition des éléments ciblés, compté à partir de la fin.
Valeurs avec un mot-clé
Notation fonctionnelle
<An+B>-
Représente les éléments dont la position, à partir de la fin, est la
An+B-ième avecnqui parcourt les entiers à partir de 0. Les valeurs fournies pourAetBdoivent être des entiers<integer>.
La syntaxe of <selector>
En passant un sélecteur en argument, nous pouvons sélectionner le n-ième dernier élément qui correspond à ce sélecteur. Par exemple, le sélecteur suivant correspond aux trois derniers éléments de liste importants, qui sont assignés avec class="important".
:nth-last-child(-n + 3 of li.important) { } Note : Cela est différent de déplacer le sélecteur en dehors de la fonction, comme :
li.important:nth-last-child(-n + 3) { } Ce sélecteur applique un style aux éléments de liste s'ils font également partie des trois derniers enfants.
Exemples
>Exemple de sélecteurs
tr:nth-last-child(odd)outr:nth-last-child(2n+1)-
Représente les lignes impaires d'un tableau HTML : 1, 3, 5, etc., en partant de la fin.
tr:nth-last-child(even)outr:nth-last-child(2n)-
Représente les lignes paires d'un tableau HTML : 2, 4, 6, etc., en partant de la fin.
:nth-last-child(7)-
Représente le septième élément, en partant de la fin.
:nth-last-child(5n)-
Représente les éléments 5, 10, 15, etc., en partant de la fin.
:nth-last-child(3n+4)-
Représente les éléments 4, 7, 10, 13, etc., en partant de la fin.
:nth-last-child(-n+3)-
Représente les trois derniers éléments parmi un groupe de frères.
p:nth-last-child(n)oup:nth-last-child(n+1)-
Représente chaque élément
<p>parmi un groupe de frères. Cela est identique à un simple sélecteurp. (Puisquencommence à zéro, tandis que le dernier élément commence à un,netn+1sélectionneront tous deux les mêmes éléments.) p:nth-last-child(1)oup:nth-last-child(0n+1)-
Représente chaque
<p>qui est le premier élément parmi un groupe de frères, en partant de la fin. Cela est identique au sélecteur:last-child.
Exemple de tableau
HTML
<table> <tbody> <tr> <td>Première ligne</td> </tr> <tr> <td>Deuxième ligne</td> </tr> <tr> <td>Troisième ligne</td> </tr> <tr> <td>Quatrième ligne</td> </tr> <tr> <td>Cinquième ligne</td> </tr> </tbody> </table> CSS
table { border: 1px solid blue; } /* Sélectionne les trois derniers éléments */ tr:nth-last-child(-n + 3) { background-color: pink; } /* Sélectionne chaque élément à partir de l'avant-dernier */ tr:nth-last-child(n + 2) { color: blue; } /* Sélectionne uniquement l'avant-dernier élément */ tr:nth-last-child(2) { font-weight: 600; } Résultat
Requêtes de quantité
La mise en forme quantity query des éléments dépend du nombre d'entre eux. Dans cet exemple, les éléments de liste deviennent rouges lorsqu'il y en a au moins trois dans une liste donnée. Cela est accompli en combinant les capacités de la pseudo-classe nth-last-child et du combinator de frère suivant.
HTML
<h4>Une liste de quatre éléments (avec style) :</h4> <ol> <li>Un</li> <li>Deux</li> <li>Trois</li> <li>Quatre</li> </ol> <h4>Une liste de deux éléments (sans style) :</h4> <ol> <li>Un</li> <li>Deux</li> </ol> CSS
/* Si il y a au moins trois éléments de liste, appliquez-leur tous un style */ li:nth-last-child(n + 3), li:nth-last-child(3) ~ li { color: red; } Résultat
Exemple de syntaxe of <selector>
Dans cet exemple, il y a une liste non ordonnée de noms. Certains éléments ont une classe noted appliquée et sont ensuite mis en surbrillance avec une bordure inférieure épaisse.
HTML
<ul> <li class="noted">Diego</li> <li>Shilpa</li> <li class="noted">Caterina</li> <li>Jayla</li> <li>Tyrone</li> <li>Ricardo</li> <li class="noted">Gila</li> <li>Sienna</li> <li>Titilayo</li> <li class="noted">Lexi</li> <li>Aylin</li> <li>Leo</li> <li>Leyla</li> <li class="noted">Bruce</li> <li>Aisha</li> <li>Veronica</li> <li class="noted">Kyouko</li> <li>Shireen</li> <li>Tanya</li> <li class="noted">Marlene</li> </ul> CSS
* { font-family: sans-serif; } ul { display: flex; flex-wrap: wrap; list-style: none; font-size: 1.2rem; padding-left: 0; } li { margin: 0.125rem; padding: 0.25rem; border: 1px solid tomato; } .noted { border-bottom: 5px solid tomato; } Dans le CSS suivant, nous ciblons les éléments de liste impairs qui sont marqués avec class="noted".
li:nth-last-child(odd of .noted) { background-color: tomato; border-bottom-color: seagreen; } Résultat
Les éléments avec class="noted" ont une bordure inférieure épaisse et les éléments 1, 7, 14 et 20 ont un fond solide car ce sont les éléments de liste impairs avec class="noted".
Spécifications
| Specification |
|---|
| Selectors Level 4> # nth-last-child-pseudo> |
Compatibilité des navigateurs
Voir aussi
- La pseudo-classe
:nth-child - La pseudo-classe
:nth-last-of-type - Requêtes de quantité pour CSS (angl.)