Chapitre 2
Interface et menus

Retour Accueil CSS

23 Bouton enfonçable

Termes CSS clés employés : ::after, box-shadow, border-radius, transition, :active
Compatibilité navigateurs : IE10+, Firefix16.0+, Chrome26+, Safari avec préfixe, Opera12.1+.

Problématique

Faire en sorte qu’un bouton semble s’enfoncer lors d’un clic dessus.

Résolution théorique

Cela demande simplement un pseudo-élément ::after complété d’un léger effet de déplacement vers le bas en cas de clic, géré par la pseudo-classe :active.

Résolution pratique

Le code HTML ne pourrait pas être plus simple :
<a href="#" class="bouton">Texte du bouton</a>
Nous définissons dans le code CSS d’abord le bouton. Outre le code décoratif, remarquez la transition.
a.bouton { display: inline-block; background: rgb(30,100,30); color: white; font: bold 1.5rem Arial; position: relative; top: 0; bottom: -12px; margin-bottom: 12px; padding: 10px 15px; border-radius: 8px/15px; transition: all 0.2s ease-in-out; }
Puis le pseudo-élément ::after, conférant l’aspect 3D, placé à l’arrière-plan grâce à z-index :
a.bouton:after { content: ""; position: absolute; display: inline-block; border-radius: 8px/15px; z-index: -1; bottom: inherit; left: 0; width: 100%; height: 100%; background: rgb(10, 70, 10); box-shadow: 1px 0 3px grey; }
Enfin, en cas de clic, le bouton change légèrement de couleur et s’abaisse un peu, masquant son relief :
a.bouton:active { background: rgb(30,120,30); top: 12px; bottom: 0; }

Bouton enfonçable

Cliquez-moi !



Retour Accueil CSS

© 1999-2014 Fabrice "Fyndhorn Elder" Lemainque