1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
---
title: ':nth-last-child'
slug: 'Web/CSS/:nth-last-child'
tags:
- CSS
- Pseudo-classe
- Reference
translation_of: 'Web/CSS/:nth-last-child'
---
<div>{{CSSRef}}</div>
<p>La <a href="/fr/docs/CSS/Pseudo-classes">pseudo-classe</a> <strong><code>:nth-last-child</code></strong> permet de cibler les éléments qui possèdent <code><em>a</em>n+<em>b</em>-1</code> 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.</p>
<pre class="brush: css no-line-numbers">/* Cible les éléments qui sont les 4e, 8e, 16e */
/* 20e à partir de la fin, quel que soit leur type */
body: nth-last-child(4n) {
background-color: lime;
}</pre>
<p>Cette pseudo-classe fonctionne comme {{cssxref(":nth-child")}} mais cette fois-ci, le comptage s'effectue depuis la fin. Pour plus d'informations sur la syntaxe des arguments, voir {{cssxref(":nth-child")}}.</p>
<h2 id="Syntaxe">Syntaxe</h2>
<p>La pseudo-classe <code>nth-last-child</code> prend un seul argument qui représente le motif de répétition des éléments ciblés, compté à partir de la fin.</p>
<h3 id="Valeurs_avec_un_mot-clé">Valeurs avec un mot-clé</h3>
<dl>
<dt><code>odd</code></dt>
<dd>Représente les éléments dont la position est impaire par rapport à leurs voisins lorsqu'elle est comptée depuis la fin.</dd>
<dt><code>even</code></dt>
<dd>Représente les éléments dont la position est paire par rapport à leurs voisins lorsqu'elle est comptée depuis la fin.</dd>
</dl>
<h3 id="Notation_fonctionnelle">Notation fonctionnelle</h3>
<dl>
<dt><code><An+B></code></dt>
<dd>Représente les éléments dont la position, à partir de la fin, est la <code>An+B</code>-ième avec <code>n</code> qui parcourt les entiers à partir de 0. Les valeurs fournies pour <code>A</code> et <code>B</code> doivent être des entiers {{cssxref("<integer>")}}.</dd>
</dl>
<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>
{{csssyntax}}
<h2 id="Exemples">Exemples</h2>
<h3 id="Exemples_2">Exemples</h3>
<dl>
<dt><code>tr:</code>nth-last-child<code>(-n+4)</code></dt>
<dd>Permettra de cibler les quatre dernières lignes d'un tableau.</dd>
<dt><code>span:nth-last-child(even)</code> ou <code>span:nth-last-child(2n)</code></dt>
<dd>Permettra de cibler tous les éléments {{HTMLElement("span")}} pairs en partant de la fin.</dd>
</dl>
<h3 id="Exemple_appliqué">Exemple appliqué</h3>
<h4 id="CSS">CSS</h4>
<pre class="brush: css">table {
border:1px solid blue;
}
tr:nth-last-child(-n+3) { /* les trois derniers enfants */
background-color: lime;
}
</pre>
<h4 id="HTML">HTML</h4>
<pre class="brush: 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>Sixième ligne</td>
</tr>
</tbody>
</table>
</pre>
<h4 id="Résultat">Résultat</h4>
<p>{{EmbedLiveSample('Exemple_appliqué', '100%', 150)}}</p>
<h3 id="Cas_aux_limites">Cas aux limites</h3>
<p><code>n</code> commence à zéro et le dernier élément commence à un, <code>n</code> et <code>n+1</code> sélectionnent donc les mêmes éléments.</p>
<h4 id="HTML_2">HTML</h4>
<pre class="brush: html"><table>
<tbody>
<tr>
<td>Première ligne</td>
</tr>
<tr>
<td>Deuxième ligne</td>
</tr>
<tr>
<td>Troisième ligne</td>
</tr>
</tbody>
</table></pre>
<h4 id="CSS_2">CSS</h4>
<pre class="brush: css">tr:nth-last-child(n) {
background-color: lightgray;
}
tr:nth-last-child(n+1){
font-weight: 600;
}
</pre>
<h4 id="Résultat_2">Résultat</h4>
<p>{{EmbedLiveSample('Cas_aux_limites')}}</p>
<h3 id="Mise_en_forme_selon_le_nombre_d’éléments">Mise en forme selon le nombre d’éléments</h3>
<p>Il est possible d'utiliser les compteurs pour mettre en forme une liste selon le nombre d'éléments qu'elle contient. Dans l'exemple qui suit, on met les éléments de la liste en rouge si celle-ci contient au moins trois éléments. Pour cela, on combine la pseudo-classe <code>nth-last-child</code> et <a href="/fr/docs/Web/CSS/Sélecteurs_de_voisins_généraux">le sélecteur de voisins généraux (<em>general sibling combinator</em>)</a>.</p>
<h4 id="HTML_3">HTML</h4>
<pre class="brush: html"><h4>Une liste avec quatre éléments :</h4>
<ol>
<li>Un</li>
<li>Deux</li>
<li>Trois</li>
<li>Quatre</li>
</ol>
<h4>Une liste avec deux éléments :</h4>
<ol>
<li>Un</li>
<li>Deux</li>
</ol></pre>
<h4 id="CSS_3">CSS</h4>
<pre class="brush: css">li:nth-last-child(n+3),
li:nth-last-child(n+3) ~ li {
color: red;
}</pre>
<h4 id="Résultat_3">Résultat</h4>
<p>{{EmbedLiveSample("Mise_en_forme_selon_le_nombre_d’éléments", '100%', 270)}}</p>
<h2 id="Spécifications">Spécifications</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Spécification</th>
<th scope="col">État</th>
<th scope="col">Commentaires</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{SpecName('CSS4 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}</td>
<td>{{Spec2('CSS4 Selectors')}}</td>
<td>Les éléments ciblés peuvent ne pas avoir d'élément parent.</td>
</tr>
<tr>
<td>{{SpecName('CSS3 Selectors', '#nth-last-child-pseudo', ':nth-last-child')}}</td>
<td>{{Spec2('CSS3 Selectors')}}</td>
<td>Définition initiale.</td>
</tr>
</tbody>
</table>
<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
<p>{{Compat("css.selectors.nth-last-child")}}</p>
<h2 id="Voir_aussi">Voir aussi</h2>
<ul>
<li>{{cssxref(":nth-child")}}</li>
<li><em><a href="https://alistapart.com/article/quantity-queries-for-css">Quantity Queries for CSS</a></em></li>
</ul>
|