Niveau : Expert

Transitions CSS3

Introduction aux transitions CSS 3

Beaucoup d'intégrateurs en ont rêvé : animer les pages web uniquement à l'aide de styles CSS, sans apport de JavaScript. Grâce aux dernières évolutions du langage et au module CSS3 Transitions, il est désormais possible de réaliser des transitions basiques à l'aide de CSS dans les navigateurs récents (Safari 4+, Chrome 2+, Firefox 3.6+)... et demain dans Internet Explorer ou Opera ?

Tutoriel par Antoine Cailliau (Software engineer and UX Designer, Louvain-la-Neuve)
Mis à jour le 28 Octobre 2009. 25721 lectures.
Tags : css, css3, transitions, animations, transform

Sommaire

Introduction et compatibilité

La spécification est le document qui définit de manière claire, précise et univoque le langage. Les spécifications des CSS 3 sont découpées en modules. Le module qui nous intéresse est nommé CSS Transition Module.

La spécification relative au module est disponible à l'adresse suivante : http://www.w3.org/TR/2009/WD-css3-transitions-20090320/.
Les indications suivantes sont basées sur ce document ainsi que sur l'implémentation Webkit. Le moteur de rendu Webkit est utilisé notamment dans Safari et Google Chrome.

Remarque : Utilisation concrète
Le moteur de rendu Webkit (Chrome, Safari) implémente la spécification mais tous les mots-clés spécifiques sont préfixés de -webkit- ; La propriété transition-property devient donc -webkit-transition-property.
Chez Mozilla Firefox, ce préfixe devient -moz- et chez Opera, il conviendra d'employer -o-.
Par souci de clarté, l'article se passe de ces préfixes. Les exemples construits utilisent naturellement ces préfixes pour fonctionner.

Au moment de la rédaction de ce document, les exemples sont fonctionnels uniquement dans Safari ou Chrome et dans la version 3.6 de Firefox.

Principe de base

Le principe de base d'une transition CSS 3 est de permettre une transition douce entre l'ancienne valeur et la nouvelle valeur d'une propriété CSS lorsqu'un événement est déclenché :

Précédemment, ce genre de comportement n'était possible qu'avec l'usage de JavaScript. Ce nouveau module CSS3 permet dorénavant de s'en affranchir au profit exclusif des feuilles de style.

Pour définir une nouvelle transition animée, il est nécessaire de préciser au minimum :

  • La ou les propriété(s) à animer
  • La durée de l'animation

Exemples concrets

Entrons directement dans le vif du sujet à travers une petite liste d'exemples des possibilités (non exhaustives) offertes par le module de transition CSS3.

Les premiers exemples sont particulièrement faciles à décortiquer et à comprendre. Affichez le code source de chacune des pages pour visualiser la méthode employée.

Quelques exemples de transitions simples en CSS 3.
Page d'exempleExplication
Couleur de TexteModifie la couleur de texte d'un lien au survol
Couleur de fondModifie la couleur de fond d'un paragraphe au survol
Déplacement de texteDécale un lien au survol en jouant sur la valeur padding-left
Dimensionnement d'élémentsAugmente la hauteur et largeur d'images au survol
Menu animéEffets de transitions sur un menu simple
Menu graphique animéAffichage et masquage à l'aide de transitions
InfobullesApparition d'infobulles explicatives sur des images