Les pseudo-classes :first-child et :last-child.

:first-child
:last-child

Résumé des caractéristiques du sélecteur :first-child

Description rapide
Pseudo-classe ciblant le premier enfant d'un élément dans l'ordre du document.
Statut
Standard
Module W3C
Sélecteurs
 🡇  
 🡅  
Statut du document: WD (document de travail)

Statut du document: REC (recommandation)

Statut du document: REC (recommandation)

Description des pseudo-classes :first-child et :last-child.

Ces pseudo-classes permettent de cibler des éléments en fonction de leur emplacement dans l'arbre du document :

  • :first-child : les éléments qui sont les premiers enfants de leur parent.
  • :last-child : bien sûr les derniers enfants de leur parent.

Voyez aussi ces autres pseudo-classes, qui permettent également de cibler des éléments en fonction de leur position dans l'arbre du document :

  • :nth-child() : les enfants qui sont en une position donnée parmi les enfants du parent.
  • :nth-last-child() : les enfants qui sont en position n en commençant le comptage par la fin.
  • :only-child : les éléments qui sont 'fils unique', c'est à dire dont le parent n'a pas d'autres enfants.

Pseudo-classes :first-child, :last-child, :nth-child(), :nth-last-child() et :only-child
Les éléments ciblés par ces différentes pseudo-classes dans le cas d'un tableau
comportant sept colonnes et une ligne unique.
 

  • :first-of-type : les éléments qui sont les premiers dans le même type qu'eux.
  • :last-of-type : les éléments qui sont les derniers dans le même type qu'eux.
  • :nth-of-type() : les éléments qui sont en une position donnée parmi les éléments du même type.
  • :nth-last-of-type() : les éléments qui sont en une position donnée parmi les éléments du même type, en commençant le comptage par la fin.
  • :only-of-type désigne les éléments dont le parent n'a pas d'autres enfants du même type.

Pseudo-classes :first-of-type, :last-of-type, :nth-of-type(), :nth-last-of-type() et :only-of-type
Les éléments ciblés par les pseudo-classes ...of-type
dans l'exemple d'un tableau comportant deux cellules th et cinq cellules td.
 

Exemple avec les pseudo-classes :first-child et :last-child.

Exemple 1 - Tous les enfants sont du même type.

Dans l'exemple ci-dessous, le premier et le dernier éléments ont été distingués par une bordure colorée.

1
2
3
4
5

Exemple 2 - Enfants de types différents.

Ce deuxième exemple est plus complexe : les descendants du bloc #exemple2 sont de types différents : des balises p et des balises div. Le sélecteur div:first-child utilisé dans le CSS ne cible plus aucun élément car le premier enfant n'est pas un div. Par contre les sélecteur div:last-child cible bien le dernier élément car il est bien du type div.

Si cela vous pose un problème, reportez-vous aux pseudo-classes :first-of-type et :last-of-type qui fonctionnent par type de balises identiques.

p

div

p

div
div

Prise en charge par les navigateurs (compatibilité).

Les pseudo-classes :first-child et :last-child en elles-mêmes ne présentent plus aucun problème de compatibilité. Il reste des lacunes avec certains navigateurs dans le cas des éléments sans parent.

1
Pseudo-classe
:first-child
2
:first-child
Éléments sans parent
3
Pseudo-classe
:last-child
4
:last-child
Éléments sans parent
Estimation de la prise en charge globale.

Navigateurs sur ordinateurs :

Navigateurs sur mobiles :

Navigateurs obsolètes ou marginaux :

Internet Explorer

Opéra Mobile

KaiOS Browser

Edge

Androïd Brower

Chrome pour Androïd

Firefox pour Androïd

Samsung Internet

Opéra

Safari

Safari sur IOS

Chrome

Firefox

Baidu Browser

QQ Browser

UC Browser pour Androïd

Opéra mini

Historique des pseudo-classes :first-child et :last-child.

Les pseudo-classes :first-child et :last-child existent depuis la version 2 du langage CSS, et leur spécification n'a pas évolué depuis.

  • CSS 2.1 - Spécification concernant les feuilles de styles en cascade - Révision 1

    Définition initiale des pseudo-classes :first-child et :last-child dans la version 2 du langage CSS.
    WD
    04 Novembre 1997
    Document de travail.
    PR
    24 Mars 1998
    Proposé à la recommandation.
    REC
    11 Mai 1998
    Recommandation.
  • Sélecteurs - Niveau 3

    Pas de changement concernant les pseudo-classes :first-child et :last-child.
    WD
    03 Août 1999
    Document de travail.
    CR
    13 Novembre 2001
    Candidat à la recommandation.
    PR
    15 Décembre 2009
    Proposé à la recommandation.
    REC
    29 Septembre 2011
    Recommandation.
  • Sélecteurs - Niveau 4

    Pas de changement concernant les pseudo-classes :first-child et :last-child.
    WD
    29 Septembre 2011
    Document de travail.
    CR
    PR
    REC

Voir aussi : pseudo-classes relatives au DOM.

De nombreuses autres sélecteurs par pseudo-classe permettent de désigner un élément en fonction de sa position dans le DOM (arbre du document). Cette liste vous permet d'accéder rapidement à leur description.

    :empty
    Pseudo-classe ciblant les éléments sans contenu.
    :first-of-type
    Pseudo-classe ciblant les premiers éléments de chaque type, dans l'ordre du document.
    :last-child
    Pseudo-classe ciblant le dernier enfant d'un élément, dans l'ordre du document.
    :last-of-type
    Pseudo-classe ciblant les derniers éléments de chaque type, dans l'ordre du document.
    :nth-child()
    Pseudo-classe ciblant un descendant d'après son numéro dans l'ordre du document.
    :nth-col()
    Pseudo-classe ciblant une des colonnes dans un container grille d'après son numéro.
    :nth-last-child()
    Pseudo-classe ciblant un élément à partir de son numéro, en commençant par la fin, et dans l'ordre du document.
    :nth-last-col()
    Pseudo-classe ciblant une des colonnes dans un container grille, en commençant le comptage par la fin.
    :nth-last-of-type()
    Pseudo-classe ciblant un élément à partir de son numéro en ne comptant que les éléments du même type et en commençant par la fin.
    :nth-of-type()
    Pseudo-classe ciblant un élément à partir de son numéro en ne comptant que les éléments du même type.
    :only-child
    Pseudo-classe ciblant les éléments qui sont fils uniques de leur parent.
    :only-of-type
    Pseudo-classe désignant les éléments qui sont fils unique de leur parent, en ne considérant que les éléments de type identique.
    :root
    Pseudo-classe ciblant l'élément racine du document (en HTML, l'élément racine est l'élément HTML).
    :scope
    Cible l'élément courant. Utile dans le cas de règles imbriquées (nested CSS).
    ::part()
    Peudo-élément qui cible un sous-élément dans l'arbre fantôme de la page (créé par template).