---
title: Pseudo-classes
slug: Web/CSS/Pseudo-classes
tags:
  - CSS
  - Intermédiaire
  - Pseudo-classe
  - Reference
  - Sélecteur
translation_of: Web/CSS/Pseudo-classes
---
<div>{{CSSRef}}</div>

<p class="summary">Une <strong>pseudo-classe</strong> est un mot-clé qui peut être ajouté à un sélecteur afin d'indiquer l'état spécifique dans lequel l'élément doit être pour être ciblé par la déclaration. La pseudo-classe {{cssxref(":hover")}}, par exemple, permettra d'appliquer une mise en forme spécifique lorsque l'utilisateur survole l'élément ciblé par le sélecteur (changer la couleur d'un bouton par exemple).</p>

<pre class="brush: css no-line-numbers">div:hover {
  background-color: #F89B4D;
}</pre>

<p>Les pseudo-classes permettent d'appliquer un style à un élément non seulement en fonction de son contenu dans l'arbre du document mais aussi en fonction de facteurs externes (l'historique de navigation par exemple avec {{cssxref(":visited")}} ; le statut du contenu avec {{cssxref(":checked")}} ; la position de la souris {{cssxref(":hover")}}).</p>

<div class="blockIndicator note">
<p><strong>Note:</strong> À la différence des pseudo-classes, <a href="/fr/docs/Web/CSS/Pseudo-%C3%A9l%C3%A9ments">les pseudo-éléments</a> peuvent être utilisés afin d'appliquer un style sur une certaine partie d'un élément.</p>
</div>

<h2 id="Syntaxe">Syntaxe</h2>

<pre class="syntaxbox">sélecteur:pseudo-classe {
  propriété: valeur;
}
</pre>

<p>À l'instar des classes, on peut chaîner plusieurs pseudo-classes au sein d'un sélecteur.</p>

<h2 id="Liste_des_pseudo-classes_standards">Liste des pseudo-classes standards</h2>

<div class="index" id="index">
<ul>
 <li>{{CSSxRef(":active")}}</li>
 <li>{{CSSxRef(":any-link")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":blank")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":checked")}}</li>
 <li>{{CSSxRef(":current")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":default")}}</li>
 <li>{{CSSxRef(":defined")}}</li>
 <li>{{CSSxRef(":dir", ":dir()")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":disabled")}}</li>
 <li>{{CSSxRef(":drop")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":empty")}}</li>
 <li>{{CSSxRef(":enabled")}}</li>
 <li>{{CSSxRef(":first")}}</li>
 <li>{{CSSxRef(":first-child")}}</li>
 <li>{{CSSxRef(":first-of-type")}}</li>
 <li>{{CSSxRef(":fullscreen")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":future")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":focus")}}</li>
 <li>{{CSSxRef(":focus-visible")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":focus-within")}}</li>
 <li>{{CSSxRef(":has", ":has()")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":host")}}</li>
 <li>{{CSSxRef(":host()")}}</li>
 <li>{{CSSxRef(":host-context()")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":hover")}}</li>
 <li>{{CSSxRef(":indeterminate")}}</li>
 <li>{{CSSxRef(":in-range")}}</li>
 <li>{{CSSxRef(":invalid")}}</li>
 <li>{{CSSxRef(":is")}} {{Experimental_inline}}</li>
 <li>{{CSSxRef(":lang", ":lang()")}}</li>
 <li>{{CSSxRef(":last-child")}}</li>
 <li>{{CSSxRef(":last-of-type")}}</li>
 <li>{{CSSxRef(":left")}}</li>
 <li>{{CSSxRef(":link")}}</li>
 <li>{{CSSxRef(":local-link")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":not", ":not()")}}</li>
 <li>{{CSSxRef(":nth-child", ":nth-child()")}}</li>
 <li>{{CSSxRef(":nth-col", ":nth-col()")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":nth-last-child", ":nth-last-child()")}}</li>
 <li>{{CSSxRef(":nth-last-col", ":nth-last-col()")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":nth-last-of-type", ":nth-last-of-type()")}}</li>
 <li>{{CSSxRef(":nth-of-type", ":nth-of-type()")}}</li>
 <li>{{CSSxRef(":only-child")}}</li>
 <li>{{CSSxRef(":only-of-type")}}</li>
 <li>{{CSSxRef(":optional")}}</li>
 <li>{{CSSxRef(":out-of-range")}}</li>
 <li>{{CSSxRef(":past")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":placeholder-shown")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":read-only")}}</li>
 <li>{{CSSxRef(":read-write")}}</li>
 <li>{{CSSxRef(":required")}}</li>
 <li>{{CSSxRef(":right")}}</li>
 <li>{{CSSxRef(":root")}}</li>
 <li>{{CSSxRef(":scope")}}</li>
 <li>{{CSSxRef(":target")}}</li>
 <li>{{CSSxRef(":target-within")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":user-invalid")}} {{Experimental_Inline}}</li>
 <li>{{CSSxRef(":valid")}}</li>
 <li>{{CSSxRef(":visited")}}</li>
 <li>{{CSSxRef(":where", ":where()")}} {{Experimental_Inline}}</li>
</ul>
</div>

<h2 id="Exemples">Exemples</h2>

<h3 id="CSS">CSS</h3>

<pre class="brush: css">.survol:hover {
  background-color: palegreen;
}

p:nth-child(2n+1) {
  background-color: lime;
}</pre>

<h3 id="HTML">HTML</h3>

<pre class="brush: html">&lt;div&gt;
  &lt;p class="survol"&gt;
    La Reine devint pourpre de colère ; et après
    l’avoir considérée un moment avec des yeux
    flamboyants comme ceux d’une bête fauve, elle
    se mit à crier : « Qu’on lui coupe la tête ! »
  &lt;/p&gt;
  &lt;p&gt;
    « Quelle idée ! » dit Alice très-haut et d’un
    ton décidé. La Reine se tut.
  &lt;/p&gt;
  &lt;p&gt;
    Le Roi lui posa la main sur le bras, et lui
    dit timidement : « Considérez donc, ma chère
    amie, que ce n’est qu’une enfant. »
  &lt;/p&gt;
&lt;/div&gt;</pre>

<h3 id="Résultat">Résultat</h3>

<p>{{EmbedLiveSample("Exemples","250","350")}}</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('Fullscreen')}}</td>
   <td>{{Spec2('Fullscreen')}}</td>
   <td>Définition de <code>:fullscreen</code>.</td>
  </tr>
  <tr>
   <td>{{SpecName('HTML WHATWG', '#pseudo-classes')}}</td>
   <td>{{Spec2('HTML WHATWG')}}</td>
   <td>Définit lorsque des sélecteurs particuliers correspondent à des éléments HTML.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS4 Selectors')}}</td>
   <td>{{Spec2('CSS4 Selectors')}}</td>
   <td>
    <p>Définition de <code>:any-link</code>, <code>:local-link</code>, <code>:scope</code>, <code>:active-drop-target</code>, <code>:valid-drop-target</code>, <code>:invalid-drop-target</code>, <code>:current</code>, <code>:past</code>, <code>:future</code>, <code>:placeholder-shown</code>, <code>:user-error</code>, <code>:blank</code>, <code>:nth-match()</code>, <code>:nth-last-match()</code>, <code>:nth-column()</code>, <code>:nth-last-column()</code> et <code>:matches()</code>.</p>

    <p>Changement afin que <code>:empty</code> se comporte comme {{CSSxRef(":-moz-only-whitespace")}} {{Non-standard_Inline}}.</p>

    <p>Aucune modification significative pour les pseudo-classes définies avec {{SpecName('CSS3 Selectors')}} et {{SpecName('HTML5 W3C')}}.</p>
   </td>
  </tr>
  <tr>
   <td>{{SpecName('HTML5 W3C')}}</td>
   <td>{{Spec2('HTML5 W3C')}}</td>
   <td>Copie les éléments pertinents de la spécification HTML WHATWG</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS3 Basic UI')}}</td>
   <td>{{Spec2('CSS3 Basic UI')}}</td>
   <td>Définition de <code>:default</code>, <code>:valid</code>, <code>:invalid</code>, <code>:in-range</code>, <code>:out-of-range</code>, <code>:required</code>, <code>:optional</code>, <code>:read-only</code> et <code>:read-write</code>, mais sans la sémantique associée.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS3 Selectors')}}</td>
   <td>{{Spec2('CSS3 Selectors')}}</td>
   <td>Définition de <code>:target</code>, <code>:root</code>, <code>:nth-child()</code>, <code>:nth-last-of-child()</code>, <code>:nth-of-type()</code>, <code>:nth-last-of-type()</code>, <code>:last-child</code>, <code>:first-of-type</code>, <code>:last-of-type</code>, <code>:only-child</code>, <code>:only-of-type</code>, <code>:empty</code> et <code>:not()</code>.<br>
    Définition de la syntaxe pour <code>:enabled</code>, <code>:disabled</code>, <code>:checked</code> et <code>:indeterminate</code>, mais sans la sémantique associée.<br>
    Pas de modification significative pour les pseudo-classes définies avec {{SpecName('CSS2.1')}}.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS2.1')}}</td>
   <td>{{Spec2('CSS2.1')}}</td>
   <td>Définition de <code>:lang()</code>, <code>:first-child</code>, <code>:hover</code> et <code>:focus</code>.<br>
    Aucune modification significative pour les pseudo-classes définies avec  {{SpecName('CSS1')}}.</td>
  </tr>
  <tr>
   <td>{{SpecName('CSS1')}}</td>
   <td>{{Spec2('CSS1')}}</td>
   <td>Définition de <code>:link</code>, <code>:visited</code> et <code>:active</code>, mais sans la sémantique associée.</td>
  </tr>
 </tbody>
</table>

<h2 id="Voir_aussi">Voir aussi</h2>

<ul>
 <li><a href="/fr/docs/Web/CSS/Pseudo-%C3%A9l%C3%A9ments">Les pseudo-éléments</a></li>
</ul>