Pseudo-classe CSSPseudo-classes

:active

Correspond à l’élément au moment de son activation, le plus souvent quand le bouton de la souris est enfoncé sur un bouton ou un lien.

Sur cette page

Exemple

#
CSS
.btn {
  box-shadow: 0 4px 0 #4c1d95;
  transition: transform 0.08s, box-shadow 0.08s;
}

.btn:active {
  transform: translateY(4px);
  box-shadow: 0 0 0 #4c1d95;
}
Aperçu

Appuyez sur le bouton et maintenez : il descend, et l’ombre dessous disparaît, comme une vraie touche.

Définition et utilisation

#

La pseudo-classe :active dure très peu de temps : du moment où le bouton de la souris est enfoncé (ou l’écran touché) jusqu’à son relâchement. C’est l’instant de la pression, donc elle convient à un effet d’enfoncement physique, par exemple un léger rétrécissement ou un déplacement vers le bas.

On l’utilise le plus souvent pour les boutons et les liens. Pour l’utilisateur, c’est la confirmation que le clic a été remarqué, avant même que la page ne réagisse autrement.

L’ordre des règles compte. :active doit venir après :hover, car pendant le clic les deux états s’appliquent à la fois, et à spécificité égale c’est la règle la plus récente qui gagne. D’où l’ordre bien connu pour les liens : :link, :visited, :hover, :active.

Syntaxe

#
Syntaxe
sélecteur:active { propriété: valeur; }

Effets de pression

#
  • scale(0.95)

    Le bouton se rétrécit légèrement, comme une touche enfoncée. Appuyez et maintenez.
  • inset box-shadow

    Une ombre intérieure donne l’impression que le bouton s’enfonce.
  • brightness(0.8)

    Un assombrissement au moment du clic. Fonctionne avec n’importe quelle couleur de fond.
  • :hover, puis :active

    Survolez d’abord, puis cliquez. La règle :active est placée plus bas, donc pendant le clic elle l’emporte sur :hover.

Effets de pression en pratique

#

scale(0.95)

Le bouton se rétrécit légèrement, comme une touche enfoncée. Appuyez et maintenez.
.demo:active { transform: scale(0.95); }

inset box-shadow

Une ombre intérieure donne l’impression que le bouton s’enfonce.
.demo:active {
  box-shadow: inset 0 3px 8px rgb(0 0 0 / 0.5);
}

brightness(0.8)

Un assombrissement au moment du clic. Fonctionne avec n’importe quelle couleur de fond.
.demo:active { filter: brightness(0.8); }

:hover, puis :active

Survolez d’abord, puis cliquez. La règle :active est placée plus bas, donc pendant le clic elle l’emporte sur :hover.
.demo:hover { background: #6d28d9; }
.demo:active { background: #4c1d95; }

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Faites de l’effet :active quelque chose de court et subtil, avec une transition d’environ 50 à 100 ms. Une animation plus longue n’aura pas le temps de se montrer, car le bouton est vite relâché.
  • Placez :active après :hover dans la feuille de style, sinon à spécificité égale l’effet de clic sera masqué.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.