![]()
Je bloggue de manière très irrégulière. Il y a quelques temps de cela j'avais fait un peu de "teasing" sur un billet concernant la création de boutons en utilisant uniquement les CSS3, et surtout sans utiliser aucune image. Je pensais publier un billet explicatif quelques jours plus tard... Et là je m'aperçoit aujourd'hui que ce billet datait de plus de 4 mois et que je n'avais toujours rien publié !
Bien sûr depuis le temps j'ai égaré les sources qui m'avaient servit d'exemple à l'époque. J'ai du refaire tout cela ce qui implique quelques petites différences dû à des différences au calibrage des effets.
En fait entre temps j'avais voulu profiter de l'occasion pour présenter plus en profondeur les principales nouveautés des CSS3, mais la tâche s'avère bien plus fastidieuse que je ne le pensais. Je vais donc me contenter de détailler pas à pas la création d'un tel bouton...
Cette démo utilise Firefox 3.6, car son moteur Gecko est le seul à supporter pleinement les propriétés CSS3 que j'ai utilisé pour créer ces boutons. Je vous conseille donc de l'utiliser avec ce navigateur si possible. Dans tous les cas une image de référence accompagne chaque étape de cette démo. Le lien vers la démo complète est disponible à la fin de l'article.
Avant de commencer, j'aurais quand même deux petites remarques :
Passons donc aux explications :
| Description | Image | Rendu réel |
|---|---|---|
Commençons tout simplement par appliquer les styles de bases, reconnu par la plupart des navigateurs, et qui nous permettent d'obtenir un simple bouton rectangulaire :
A noter qu'Internet Explorer 8 s'arrêtera là, puisqu'il ne possède aucune implémentation des CSS3. |
![]() |
bouton |
Nous allons maintenant utiliser la propriété border-radius qui permet d'appliquer un arrondi aux coins d'un élément, en spécifiant les longueurs des rayons de l'ellipse qui formera l'arrondi. Le premier nombre correspondant au rayon horizontal et le second au rayon vertical, ce qui permet de donner un aspect incurvé.
Il est possible de définir jusqu'à 4 valeurs pour chaque rayon, afin de donner une valeur différente à chaque coin de l'élément. |
![]() |
bouton |
|
La propriété text-shadow permet de rajouter un ombrage sur du texte, afin de le mettre en valeur. Ici on applique un flou important sur un ombrage sans aucun décalage, ce qui applique une légère ombre tout autour du texte :
Pour l'anecdote text-shadow n'utilise pas de préfixe car elle était déjà utilisé, puisqu'il s'agit en fait d'une propriété des CSS2 qui fait son retour après avoir été supprimé des CSS2.1. |
![]() |
bouton |
De même, on peut utiliser text-shadow pour un ombrage plus prononcé en bas à droite du texte :
|
![]() |
bouton |
Et puisque la propriété text-shadow accepte de multiples valeurs séparées par une virgule, on peut cumuler les effets pour donner encore plus de relief à notre texte :
|
![]() |
bouton |
|
La propriété box-shadow est équivalente à text-shadow, si ce n'est qu'elle s'applique à une boite et non pas seulement au texte. Par exemple on pourrait utiliser ceci pour donner un ombrage à notre bouton :
|
![]() |
bouton |
Mais la propriété box-shadow peut également s'appliquer à l'intérieur de la boite en utilisant le mot-clef inset :
Cette possibilité s'avère très intéressante car elle permet d'appliquer des ombres à l'intérieur de l'élément pour un effet encore plus prononcé. |
![]() |
bouton |
En utilisant conjointement avec rgba(), qui nous permet de définir une couleur avec un niveau alpha de transparence, on peut se permettre d'appliquer des ombres plus importantes qui, par effet de transparence s'adapteront bien à la couleur de fond du bouton :
|
![]() |
bouton |
Tout comme text-shadow, on peut cumuler les effets, ce qui nous donne un bon effet de relief pour finaliser notre bouton :
|
![]() |
bouton |
Il ne reste plus qu'à changer la couleur de fond du bouton lors du passage de la souris ou du clic, ce qui donnerait quelque chose comme cela (les styles dont mis en ligne et ne permettent pas cela dans un billet - voir un peu plus bas la demo pour un résultat en direct) :
|
![]() |
bouton |
|
![]() |
bouton |
Et voilà !
N'hésitez pas à consulter le code source de la demo HTML pour plus d'exemple d'utilisation et pour voir l'effet rollover en vrai. La plupart des boutons sont basées sur les mêmes principes, et se distinguent uniquement via quelques différences de paramétrages des effets (arrondis plus ou moins prononcés, ombres plus ou moins grande).
Il resterait beaucoup de chose à présenter sur les CSS3, qui mériterait chacun leurs propres billets :
http://blog.developpez.com/htsrv/trackback.php?tb_id=8635
Cet article n'a pas de Commentaires/Trackbacks/Pingbacks pour le moment...
Vous devez être identifié pour poster un commentaire.

Ce blog est mis à disposition sous un contrat Creative Commons BY-NC-SA.
System.gc() a encore frappé : jre 1.5, tomcat 6.0 et multi processeurs
Tutoriels Java SE
Tutoriels Java EE
Sélection du blog
Java SE/EE et Web en général
| Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Copyright © 2000-2012 - www.developpez.com