Pseudo-classe CSS :last-of-type
La pseudo-classe CSS :last-of-type sélectionne le dernier élément de son type parmi ses frères et sœurs. Exemples pratiques inclus.
La pseudo-classe CSS :last-of-type sélectionne un élément qui est le dernier élément de son type parmi les enfants de son parent. « Type » désigne ici le nom de balise de l'élément — ainsi, p:last-of-type cible le dernier <p> à l'intérieur de son parent, quel que soit le nombre d'autres éléments (divs, titres, spans) qui le suivent.
Cette page explique ce que :last-of-type cible, sa syntaxe, son comportement sur différents types d'éléments, et — surtout — en quoi il diffère de la pseudo-classe similaire :last-child.
La pseudo-classe :last-of-type est équivalente à :nth-last-of-type(1) et sélectionne exactement le même élément.
Quand l'utiliser
Utilisez :last-of-type lorsque vous souhaitez styliser le dernier élément d'une balise donnée sans dépendre de sa position exacte. Cas d'utilisation courants :
- Supprimer la marge ou la bordure inférieure du dernier paragraphe d'une carte.
- Styliser le dernier élément de liste, la dernière image ou la dernière section dans un conteneur qui mélange différents types d'éléments.
- Cibler « le dernier de son espèce » lorsqu'on ne peut pas être certain qu'il est aussi le tout dernier enfant du parent.
Si vous avez besoin de l'élément qui est littéralement le dernier enfant du parent — quel que soit son type — utilisez :last-child. Voir la comparaison ci-dessous.
Version
Syntaxe
Syntaxe CSS de :last-of-type
:last-of-type {
css declarations;
}Exemple du sélecteur :last-of-type :
Exemple de code :last-of-type
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:last-of-type {
background: #8ebf42;
font-style: italic;
color: #eeeeee;
}
</style>
</head>
<body>
<h2>:last-of-type selector example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
</body>
</html>Cibler des éléments parents
Le sélecteur peut également être appliqué à des éléments parents.
The * selector is implied when no type selector is specified (e.g., *:last-of-type is equivalent to :last-of-type).
Dans l'exemple ci-dessous, article:last-of-type stylise le dernier <article> parmi ses frères et sœurs. Notez que la pseudo-classe est évaluée par type au sein de chaque parent : les éléments <em> sont regroupés séparément des éléments <div> et <b>, de sorte que chaque balise possède son propre « dernier de son type ».
Exemple de ciblage d'un élément parent :
Pseudo-classe CSS :last-of-type
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
article:last-of-type {
background-color: #8ebf42;
}
</style>
</head>
<body>
<article>
<div>This "div" is first.</div>
<div>This <span>nested "span" is last</span>!</div>
<div>This <em>nested "em" is first</em>, but this <em>nested "em" is last</em>!</div>
<b>This "b" qualifies!</b>
<div>This is the final "div"!</div>
</article>
</body>
</html>:last-of-type vs :last-child
Les sélecteurs :last-child et :last-of-type se ressemblent mais répondent à des questions différentes :
:last-childcible un élément uniquement s'il est le tout dernier enfant de son parent — la position compte, le type non.:last-of-typecible le dernier élément d'un type donné, même si d'autres éléments le suivent.
Ainsi, p:last-of-type cible le dernier <p> même lorsqu'un <span> le suit, tandis que p:last-child ne correspondrait pas du tout à ce <p> (car le <span> est le véritable dernier enfant). Dans l'exemple ci-dessous, la règle s'applique au dernier paragraphe indépendamment des spans, tandis que span:last-child cible uniquement le dernier span — qui se trouve être le dernier enfant du body.
Exemple des sélecteurs CSS :last-of-type et :last-child :
Sélecteurs :last-of-type et :last-child
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
p:last-of-type {
background: #8ebf42;
font-style: italic;
color: #eee;
}
span {
display: block;
}
span:last-child {
background: #8ebf42;
font-style: italic;
font-weight: bold;
color: #eee;
padding: 10px;
}
</style>
</head>
<body>
<h2>:last-of-type and :last-child selectors example</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<p>Paragraph 3</p>
<span>Some text</span>
<span>Some text</span>
<span>Some text</span>
</body>
</html>Points de vigilance
:last-of-typeest limité à chaque parent : chaque élément parent possède son propre « dernier paragraphe », « dernier div », etc.- Il fonctionne uniquement sur les types d'éléments. Il n'existe pas d'équivalent basé sur les classes —
.box:last-of-typesignifie « le dernier élément dont le type correspond à l'élément qui possède aussi la classebox», et non « le dernier élément ayant la classebox». Utilisez:last-childcombiné à une classe, ou:nth-last-of-type(), pour un contrôle plus fin. - Si un parent ne possède qu'un seul élément d'un type donné, cet élément unique est à la fois son propre
:last-of-type(et:first-of-type).
Sélecteurs associés
:first-of-type— le premier élément de son type.:nth-of-type()et:nth-last-of-type()— correspondance par type selon la position.:only-of-type— un élément qui est le seul de son type.:last-child— le dernier enfant quel que soit son type.