aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/css/_colon_nth-child
diff options
context:
space:
mode:
Diffstat (limited to 'files/fr/web/css/_colon_nth-child')
-rw-r--r--files/fr/web/css/_colon_nth-child/index.html210
1 files changed, 210 insertions, 0 deletions
diff --git a/files/fr/web/css/_colon_nth-child/index.html b/files/fr/web/css/_colon_nth-child/index.html
new file mode 100644
index 0000000000..b9826680e8
--- /dev/null
+++ b/files/fr/web/css/_colon_nth-child/index.html
@@ -0,0 +1,210 @@
+---
+title: ':nth-child'
+slug: 'Web/CSS/:nth-child'
+tags:
+ - CSS
+ - Pseudo-classe
+ - Reference
+translation_of: 'Web/CSS/:nth-child'
+---
+<div>{{CSSRef}}</div>
+
+<p>La <a href="/fr/docs/Web/CSS/Pseudo-classes">pseudo-classe</a> <strong><code>:nth-child(an+b)</code></strong> permet de cibler un élément qui possède <code><em>a</em>n+<em>b</em>-1</code> éléments voisins (au même niveau) avant lui dans l'arbre du document pour des valeurs entières <code>n</code> et qui possède un élément parent. Autrement dit, un sélecteur utilisant cette pseudo-classe permettra de cibler les éléments fils d'un élément dont les positions correspondent au motif <em>an+b</em>.</p>
+
+<pre class="brush: css no-line-numbers">/* Cible les éléments en fonction de leur position dans */
+/* le document : ici le 4e, 8e, 16e, 20e, etc. quel que */
+/* soit le type de l'élément */
+body :nth-child(4n) {
+ background-color: lime;
+}</pre>
+
+<div class="note">
+<p><strong>Note :</strong> Pour CSS3, pour que l'élément soit ciblé, il faut qu'il ait un élément parent. En CSS4, cette restriction a été levée.</p>
+</div>
+
+<p>Illustrons cela avec quelques exemples :</p>
+
+<ul>
+ <li><code>1n+0</code> ou <code>n</code> ciblera chaque élément fils. <code>n</code> ne cible aucun élément pour le navigateur Android jusqu'à la version 4.3 alors qu'<code>1n</code> fonctionne. <code>1n</code> est synonyme de <code>1n+0</code> et les deux peuvent donc être utilisés de façon équivalente.</li>
+ <li><code>2n+0</code> ou <code>2n</code> ciblera les éléments fils 2, 4, 6, 8, etc. On pourra utiliser le mot-clé <strong><code>even</code></strong> à la place de cette expression.</li>
+ <li><code>2n+1</code> ciblera les éléments fils 1, 3, 5, 7, etc. On pourra utiliser le mot-clé <strong><code>odd</code></strong> à la place de cette expression.</li>
+ <li><code>3n+4</code> permettra de cibler les éléments fils 4, 7, 10, 13, etc.</li>
+ <li><code>0n+3</code> (ou plus simplement <code>3</code>) permettra de cibler le troisième élément.</li>
+</ul>
+
+<p>Les valeurs des coefficients <code><em>a</em></code> et <code><em>b</em></code> doivent être des entiers et l'indice du premier élément fils commence à 1. Autrement dit, cette pseudo-classe permettra de cibler les éléments fils dont l'indice appartient à l'ensemble <code>{ an + b; n = 0, 1, 2, ... }</code>.</p>
+
+<p>Cette pseudo-classe pourra ainsi être utilisée pour mettre en forme certaines lignes d'un tableau.</p>
+
+<h2 id="Syntaxe">Syntaxe</h2>
+
+<p>La pseudo-classe <code>nth-child</code> prend un seul argument qui représente le motif de répétition des éléments ciblés.</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.</dd>
+ <dt><code>even</code></dt>
+ <dd>Représente les éléments dont la position est paire par rapport à leurs voisins.</dd>
+</dl>
+
+<h3 id="Notation_fonctionnelle">Notation fonctionnelle</h3>
+
+<dl>
+ <dt><code>&lt;An+B&gt;</code></dt>
+ <dd>Représente les éléments dont la position 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("&lt;integer&gt;")}}).</dd>
+</dl>
+
+<h3 id="Syntaxe_formelle">Syntaxe formelle</h3>
+
+<pre class="syntaxbox">{{csssyntax}}</pre>
+
+<h2 id="Exemples">Exemples</h2>
+
+<h3 id="Exemples_de_sélecteurs">Exemples de sélecteurs</h3>
+
+<dl>
+ <dt><code>tr:nth-child(2n+1)</code></dt>
+ <dd>Permettra de cibler les lignes impaires d'un tableau.</dd>
+ <dt><code>tr:nth-child(odd)</code></dt>
+ <dd>Permettra de cibler les lignes impaires d'un tableau.</dd>
+ <dt><code>tr:nth-child(2n)</code></dt>
+ <dd>Permettra de cibler les lignes paires d'un tableau.</dd>
+ <dt><code>tr:nth-child(even)</code></dt>
+ <dd>Permettra de cibler les lignes paires d'un tableau.</dd>
+ <dt><code>span:nth-child(0n+1)</code></dt>
+ <dd>Permettra de cibler un élément {{HTMLElement("span")}} qui est le premier fils de son parent. Cela aura le même effet que la pseudo-classe {{cssxref(":first-child")}}.</dd>
+ <dt><code>span:nth-child(1)</code></dt>
+ <dd>Synonyme à l'exemple précédent.</dd>
+ <dt><code>span:nth-child(-n+3)</code></dt>
+ <dd>Permettra de cibler un élément si celui-ci fait partie des trois premiers fils d'un parent et que c'est également un élément <code>span</code>.</dd>
+</dl>
+
+<h3 id="Exemple_démonstratif">Exemple démonstratif</h3>
+
+<div id="Exemple_demonstratif">
+<h4 id="CSS">CSS</h4>
+
+<pre class="brush: css">html {
+ font-family: sans-serif;
+}
+
+span, div em {
+ padding: 10px;
+ border: 1px solid green;
+ display: inline-block;
+ margin-bottom: 3px;
+}
+
+.premier span:nth-child(2n+1),
+.deuxieme span:nth-child(2n+1),
+.troisieme span:nth-of-type(2n+1) {
+ background-color: lime;
+}</pre>
+
+<h4 id="HTML">HTML</h4>
+
+<pre class="brush:html">&lt;p&gt;
+ &lt;code&gt;span:nth-child(2n+1)&lt;/code&gt;,
+ &lt;em&gt;sans&lt;/em&gt; un &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;
+ parmi les éléments. Les éléments fils 1, 3,
+ 5 et 7 sont sélectionnés.
+&lt;/p&gt;
+
+&lt;div class="premier"&gt;
+ &lt;span&gt;Ce span est sélectionné !&lt;/span&gt;
+ &lt;span&gt;Pas ce span ci. :(&lt;/span&gt;
+ &lt;span&gt;Celui-ci ?&lt;/span&gt;
+ &lt;span&gt;Celui-là ?&lt;/span&gt;
+ &lt;span&gt;Un autre exemple&lt;/span&gt;
+ &lt;span&gt;Et encore un&lt;/span&gt;
+ &lt;span&gt;Puis un dernier&lt;/span&gt;
+&lt;/div&gt;
+
+&lt;p&gt;
+ &lt;code&gt;span:nth-child(2n+1)&lt;/code&gt;,
+ &lt;em&gt;avec&lt;/em&gt; un élément &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;
+ parmi les fils. Les éléments fils 1, 5,
+ et 7 sont sélectionnés. 3 est compté
+ mais n'est pas ciblé car ce n'est pas
+ &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;.
+&lt;/p&gt;
+
+&lt;div class="deuxieme"&gt;
+ &lt;span&gt;Ce span est sélectionné !&lt;/span&gt;
+ &lt;span&gt;Pas ce span ci. :(&lt;/span&gt;
+ &lt;em&gt;Ici on a un em.&lt;/em&gt;
+ &lt;span&gt;Qu'en est-il de celui-ci ?&lt;/span&gt;
+ &lt;span&gt;De celui-là ?&lt;/span&gt;
+ &lt;span&gt;Voici un autre exemple&lt;/span&gt;
+ &lt;span&gt;Et encore un&lt;/span&gt;
+ &lt;span&gt;Puis un dernier&lt;/span&gt;
+&lt;/div&gt;
+
+&lt;p&gt;
+ &lt;code&gt;span:nth-of-type(2n+1)&lt;/code&gt;,
+ &lt;em&gt;avec&lt;/em&gt; un &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;
+ parmi les éléments fils. Les éléments fils
+ 1, 4, 6 et 8 sont sélectionnés. 3 n'est pas
+ compté ni ciblé car c'est un &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt;,
+ et pas un &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; et
+ &lt;code&gt;nth-of-type&lt;/code&gt; ne sélectionne que les
+ fils de ce type. Ce &lt;code&gt;&amp;lt;em&amp;gt;&lt;/code&gt; est
+ sauté et est ignoré.
+&lt;/p&gt;
+
+&lt;div class="troisieme"&gt;
+ &lt;span&gt;Ce span est sélectionné !&lt;/span&gt;
+ &lt;span&gt;Pas ce span ci. :(&lt;/span&gt;
+ &lt;em&gt;Ici on a un em.&lt;/em&gt;
+ &lt;span&gt;Qu'en est-il de celui-ci ?&lt;/span&gt;
+ &lt;span&gt;De celui-là ?&lt;/span&gt;
+ &lt;span&gt;Voici un autre exemple&lt;/span&gt;
+ &lt;span&gt;Et encore un&lt;/span&gt;
+ &lt;span&gt;Puis un dernier&lt;/span&gt;
+&lt;/div&gt;
+</pre>
+</div>
+
+<h4 id="Résultat">Résultat</h4>
+
+<div>{{EmbedLiveSample('Exemple_demonstratif','100%', '550')}}</div>
+
+<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-child-pseudo', ':nth-child')}}</td>
+ <td>{{Spec2('CSS4 Selectors')}}</td>
+ <td>Ajout de la syntaxe <code>&lt;selector&gt;</code>. Les éléments ciblés peuvent ne pas avoir d'élément parent.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('CSS3 Selectors', '#nth-child-pseudo', ':nth-child')}}</td>
+ <td>{{Spec2('CSS3 Selectors')}}</td>
+ <td>Définition initiale.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Compatibilité_des_navigateurs">Compatibilité des navigateurs</h2>
+
+<div class="hidden">Ce tableau de compatibilité a été généré à partir de données structurées. Si vous souhaitez contribuer à ces données, n'hésitez pas à envoyer une <em>pull request</em> sur <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>.</div>
+
+<p>{{Compat("css.selectors.nth-child")}}</p>
+
+<h2 id="Voir_aussi">Voir aussi</h2>
+
+<ul>
+ <li>{{cssxref(":nth-of-type")}}</li>
+ <li>{{cssxref(":first-child")}}</li>
+ <li>{{cssxref(":last-child")}}</li>
+</ul>