CSS3 Transitions: esempi con le pseudo-classi
Uno dei moduli introdotti nei CSS3 è quello delle transitions, che ci consente di realizzare effetti di transizione utilizzando solo i CSS, senza l’aggiunta di codice javascript, ma solo modificando le proprietà del CSS, nelle quali potremmo specificare il tipo di transizione e la durata.
Uno degli usi più comuni delle CSS3 transitions è quello in congiunzione della pseudo-class :hover, ma è possibile ottenere effetti interessanti anche con altre pseudo-classi.
Transitions con :hover
Ecco un tipico esempio di una transizione sul cambio colore di un elemento che si ha attraverso il mouse hover
a, a:link, a:visited {
color: lightblue;
-webkit-transition: color .4s linear;
-moz-transition: color .4s linear;
-o-transition: color .4s linear;
-ms-transition: color .4s linear;
transition: color .4s linear;
}
a:hover {
color: white;
}
Questo animerà la transizione del colore quando si passa con il mouse sopra un link.
Passa sopra il mouse
Transitions con :active
L’utilizzo della pseudo-classe :active corrisponde a qualsiasi elemento che è in procinto di essere attivato. Il modo principale per cui un elemento viene “attivato” si ha attraverso il clic del mouse sull’elemento, o il mousedown.
Ecco un esempio CSS, inserendo delle transitions nell’elemento non attivo si simulerà una transizione anche nel mousedown. Se avessivo inserita solo nella pseudo class :active avremmo avuto un’animazione solo cliccando l’elemento.
.box {
width: 300px;
height: 300px;
background: #ADC8D5;
-webkit-transition: width 2s ease, height 2s ease;
-moz-transition: width 2s ease, height 2s ease;
-o-transition: width 2s ease, height 2s ease;
-ms-transition: width 2s ease, height 2s ease;
transition: width 2s ease, height 2s ease;
}
.box:active {
width: 500px;
height: 500px;
}
Con questo codice, la larghezza e l’altezza del box aumentano quando si tiene premuto il mouse sull’elemento. Una volta rilasciato il click, il box torna alle sue dimensioni originali.
Ecco una demo
Transitions con :focus
È possibile utilizzare :focus per fare qualcosa di simile. Questa esempio mostra un form che si allarga quando vengono selezionati i box di input.
input, textarea {
width: 280px;
-webkit-transition: width 1s ease;
-moz-transition: width 1s ease;
-o-transition: width 1s ease;
-ms-transition: width 1s ease;
transition: width 1s ease;
}
input:focus, textarea:focus {
width: 340px;
}
Ecco l’esempio




