Définition de la CSS :nth-child.
La pseudo-classe CSS :nth-child()
permet de cibler tous les n-ième enfants dans la liste des enfants directs d'un même élément parent, afin de leur assigner des propriétés CSS.:nth-child()
commence sa sélection du n-ième enfant par le début de la liste des enfants d'un même élément parent, à l'inverse de :nth-last-child
.
La pseudo-classe CSS :nth-child(paramètre)
CSS accepte comme paramètres :
- numérique : nombre entier. Si positif on sélectionne un seul fils, le "numérique"ème par exemple. Si négatif aucun fils n'est sélectionné.
-
odd
: équivaux à fairenth-child(2n+1)
. -
even
: équivaux à fairenth-child(2n)
. -
an+b
: "a" est entier positif ou négatif suivit de "n", "b" entier précédé de "-" ou de "+" qui détermine s'il est positif ou négatif. Par exemple2n+2
. - Si "a" égale "1", il peut être omis.
Si vous mettez un sélecteur accolé et devant ":" de la pseudo-classe :nth-child()
CSS, alors seul les fils correspondant à la règle de ce sélecteur seront pris en compte.
Exemple de code :nth-child
CSS
Conditions d'application de la CSS :nth-child.
La pseudo-classe de feuille de style :nth-child()
CSS ne peut pas se déclarer dans l'attribut HTML ou XHTML STYLE
.
La pseudo-classe CSS :nth-child()
doit être déclarée dans une balise HTML ou XHTML STYLE
.
Problème d'interprétation de :nth-child en Css.
La pseudo-classe de feuille de style :nth-child()
CSS n'est prise en compte qu'a partir de la version d'Internet Explorer 9+, Safari 3.1+, Chrome 2+ , Opera 9.5+ et Firefox 3.5+.
Règles de syntaxes CSS pour :nth-child.
Comprendre l'écriture de :nth-child()
La pseudo-classe CSS :nth-child(règle)
s'applique chaque enfant correspondant à la "règle (an+b, odd, ...)" de tous les éléments HTML ou XHTML quelque soit leur position. Vous pouvez donc si nécessaire mettre un sélecteur devant, pour conditionner la sélection des enfants en plus de la "règle", sinon les propriétés seront appliquées à l'ensemble des éléments HTML ou XHTML dont les enfants répondent à :nth-child(règle)
.
Pour schématiser, il faut imaginer que par défaut la pseudo-classe CSS :nth-child(règle)
s'écrit *:nth-child(règle)
. "*" représente la condition soit "n'importe quel élément" (sélectionne tous les enfants correspondant à la "règle" sans distinction).
Donc pour conditionner plus précisément la sélection, il faut juste remplacer "*" par un autre sélecteur qui vous permettra de distinguer les enfants que vous voulez sélectionner parmi les résultats de la peudo-classe.
Ce sélecteur doit être unique (classe, id, balise ou pseudo-classe) ou multiple à condition de ne pas contenir d'espace entre chaque sélecteur, sinon on passe dans le cas d'un chemin de sélection pour sélectionner le parent (vous comprendrez mieux avec les exemples qui suivent).
Maintenant, vous pouvez être plus précis dans pour cibler l'élément parent dans lequel vous voulez sélectionner les fils, en mettant un chemin de sélection devant :
Les boites anonymes et le sélécteur Css :nth-child()
Attention : Les boites anonymes n'apparaissent pas dans l'arbre du document, c'est pourquoi elles ne sont pas prises en compte au moment de la mise en forme des enfants.
Info complémentaire sur le sélécteur Css :nth-child
Attention, la pseudo-classe CSS ":nth-child
" a une écriture un peu spéciale, "nth-child
" est toujours précédée de ":".
La pseudo-classe CSS :nth-child
ne peut pas être déclarée dans une balise HTML ou XHTML avec l'attribut HTML ou XHTML "STYLE
" ou dans une feuille de style externe.
Elle se déclare dans une balise HTML ou XHTML "STYLE
" de votre page :
Compatibilités navigateurs du sélecteur :nth-child
- Détails des versions de la CSS :nth-child
- Sélecteur
:nth-child
est compatible avec CSS3 et plus.
Exemples et astuces CSS pour utiliser :nth-child
Comment fonctionne le sélécteur Css nth-child(an+b)
an+b
, comment cela fonctionne :
Pour savoir quels fils seront sélectionnés avec 2n+2
, vous devez faire le calcul suivant :
2 * 0 + 2 = 2
, soit le 2ème fils.2 * 1 + 2 = 4
, soit le 4ème fils.2 * 2 + 2 = 6
, soit le 6ème fils.- Et ainsi de suite.
Pour savoir quels fils seront sélectionnés avec
4n-2
, vous devez faire le calcul suivant :4 * 0 - 2 = -2
, les résultats négatifs sont ignorés car ne représente aucun élément dans l'arbre des fils.4 * 1 - 2 = 2
, soit le 2ème fils.4* 2 - 2 = 6
, soit le 6ème fils.4* 3 - 2 = 6
, soit le 10ème fils.- Et ainsi de suite.
Pour savoir quels fils seront sélectionnés avec
-1n+4
, vous devez faire le calcul suivant :-1 * 0 + 4 = 4
, soit le 4ème fils.-1 * 1 + 4 = 3
, soit le 3ème fils.-1 * 2 + 4 = 2
, soit le 2ème fils.-1 * 3 + 4 = 1
, soit le 1er fils.-1 * 4 + 4 = 0
, 0 est ignoré car ne représente aucun élément dans l'arbre des fils.-1 * 5 + 4 = -1
, les résultats négatifs sont ignorés car représente aucun élément dans l'arbre des fils.- Tous les autres résultats sont négatifs donc ignorés.
Quelques équivalences d'écriture de nth-child()
Sélectionne seulement le 1er fils :
Sélectionne seulement les fils ayant un index impaire (1, 3, 5, ...) :
Sélectionne seulement les fils ayant un index paire (2, 4, 6, ...) :
Sélectionne tous les fils :
Sélectionne les 5 premiers fils :
Sélectionne tous les fils sauf les 5 premiers :
Votre avis sur la définition :nth-child en CSS
Votez pour la définition CSS :nth-child
- 1/5
- 2/5
- 3/5
- 4/5
- 5/5
Votes: 4.3 / 5 - 6
votes
Cliquez sur une étoile pour voter.