Chapitre 3
CSS 3 : usage avancé
CSS Transitions
Les CSS3 permettent de réaliser des habillages et des transitions. Elles demandent une rédaction plus complexe, de plusieurs lignes afin d'appliquer les css à tous les navigateurs.
Seuls les navigateurs récents reconnaissent les propriétés CSS3,
Voici comment on les rédige :
propriété CSS3 : valeur;
- -moz-propriété : valeur; pour les navigateurs Firefox < 4.
- -o-propriété : valeur; pour opéra
- -ms-propriété : valeur; pour Internet explorer
- -webkit-propriété : valeur; pour Chrome <10, Safari <5.1 et Android ainsi que Safari Mobile <5.0
Les transitions
Les transitions permettent de changer d'état avec la seule aide des CSS. On peut modifier la couleur par exemple, avec un fondu, en utilisant la pseudo class :hover d'un lien, comme dans l'exemple suivant :
Voici le code qui utilise la couleur du fond comme transition avec un délai de 3s :
a.bt-vert {
background:#3C0;
padding:10px;
color:#000;
text-decoration:none;
border-radius:10px;
-moz-border-radius:10px;
-webkit-boder-radius:10px;
-moz-transition: background 3s; /* Firefox 4 */
-webkit-transition: background 3s; /* Safari and Chrome */
-o-transition: background 3s; /* Opera */
}
a.bt-vert:hover{ background:#060;color:#CCC;}
Transitions-timing-function
Les feuilles de styles CSS3 proposent de nombreuses transitions.
La propriété transition-timing-function
Elle permet de règler la manière dont se déroulera la transition. Elle a plusieurs valeurs possibles :
- Ease (valeur par défaut) : effet de départ lent, puis action rapide et fin ralentie
- Linear : effet de vitesse constante
- Ease-in: effet de départ len
- Ease-out: effet de fin ralentie
- Ease-in-out: effet avec un départ et une fin lente
- Cubic-bezier(n,n,n,n) : on définit nos valeurs (de 0 à 1)
Pour comprendre la différence entre les différents effets de vitesse de transition :(timing), comme l'accélération cette page montre un excellent exemple :
http://www.w3schools.com/css/tryit.asp?filename=trycss3_transition_speed
ou celle-ci :
http://css3.bradshawenterprises.com/transitions/
Exemples
Exemple 01 : changement de taille au survol
div {
width: 100px;
height: 100px;
background: #1CCF6D;
-webkit-transition: width 2s; /* For Safari 3.1 to 6.0 */
transition: width 2s;
}
div:hover {
width: 300px;
}
Exemple 02 : plusieurs changements au survol
div {
width: 100px;
height: 100px;
background:#F39;
-webkit-transition: width 2s; /* For Safari 3.1 to 6.0 */
transition: all ease 2s;
}
div:hover {
width: 300px;
background:#03C;
}
Exemples 03 : Transition de rotation avec une image
#trans03 {
-webkit-transition: width 2s, height 2s, -webkit-transform 2s;
transition: width 2s, height 2s, transform 2s;
}
#trans03:hover {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
Pour voir plus de transitions avec des images : http://css3.bradshawenterprises.com/cfimg/