Prerequisiti: Trasformazioni.
Passaggi fra stati con transition
Passaggi fra stati con transition: fondamenti.
Una transizione descrive come interpolare un cambiamento tra valori compatibili di una proprietà. Occorre sia la dichiarazione transition sia un cambiamento effettivo, per esempio tra lo stato normale e :hover. Una durata da sola non avvia un’animazione. Alcune proprietà cambiano in modo discreto o richiedono funzionalità specifiche: per iniziare scegli colori e trasformazioni con un comportamento prevedibile.
Come funziona: passaggi fra stati con transition
Passaggi fra stati con transition: comportamento nel browser.
transition può combinare proprietà, durata, funzione temporale ed eventuale ritardo. transition: transform 150ms ease, background-color 150ms ease anima due sole proprietà. Evitare all rende esplicita l’intenzione e impedisce che future modifiche del foglio animino inaspettatamente altri aspetti. transform: translateY() sposta visivamente il componente senza riservare un nuovo spazio nel flusso; resta necessario evitare sovrapposizioni con gli elementi vicini.
Scelte di utilizzo e limiti
Passaggi fra stati con transition: progetto e verifica.
La media query prefers-reduced-motion: reduce permette di adattare gli effetti alla preferenza dell’utente per un movimento ridotto. Non tutte le animazioni vanno trattate allo stesso modo, ma per una piccola decorazione puoi rimuovere transizione e spostamento senza perdere funzionalità. Mantieni sempre un segnale di focus per chi usa la tastiera. L’animazione non deve essere l’unico mezzo per capire che un elemento è interattivo.
Esempio commentato
Passaggi fra stati con transition: HTML e CSS.
Esempio con stile esterno. Il documento index.html collega il file stile.css mediante il tag link nella head.
Documento HTML completo
<!doctype html>
<html lang="it">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Transizioni</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<p><a class="azione" href="#destinazione">Vai alla lezione</a></p>
<h2 id="destinazione">Destinazione</h2>
</body>
</html>
File stile.css
.azione {
display: inline-block;
padding: 0.75rem 1rem;
color: #174a7e;
background-color: #eef4fa;
transition: transform 150ms ease, background-color 150ms ease;
}
.azione:hover { transform: translateY(-2px); background-color: #dbe8f5; }
.azione:focus-visible { outline: 3px solid #174a7e; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
.azione { transition: none; }
.azione:hover { transform: none; }
}
Risultato nel browser
La transizione è sullo stato di base, così accompagna anche il ritorno dall’hover. La preferenza reduce elimina il movimento decorativo.
| Proprietà | Valore nell’esempio | Significato |
|---|---|---|
display | inline-block | Tipo di scatola e contesto di layout. |
padding | 0.75rem 1rem | Spazio interno fra contenuto e bordo. |
color | #174a7e | Colore del testo; non imposta lo sfondo. |
background-color | #eef4fa | Colore dello sfondo dell’elemento. |
transition | transform 150ms ease, background-color 150ms ease | Proprietà e tempi del passaggio fra valori. |
transform | translateY(-2px) | Trasformazione visuale della scatola. |
LABORATORIO
Sperimentare: Passaggi fra stati con transition
La transizione è sullo stato di base, così accompagna anche il ritorno dall’hover. La preferenza reduce elimina il movimento decorativo.
Obiettivo: Comprendere e applicare passaggi fra stati con transition attraverso esempi e verifica nel browser.
Software: editor di testo e browser con DevTools; Tempo: 15 minuti.
Preparazione: scarica l’esempio completo e estrai lo ZIP. Apri index.html nel browser. Puoi anche aprire l’esempio online.
Apri il file stile.css nell’editor. Le lezioni iniziali usano un documento già preparato per concentrarsi sulle regole; il collegamento esterno e lo stile interno vengono spiegati nelle lezioni dedicate. Le modifiche nei DevTools sono normalmente temporanee.
Procedura passo passo
- Osserva il punto di partenza: apri l’esempio, confronta markup e regole e individua il selettore o il contesto di layout rilevante.
- Esegui la modifica: Cambia la durata da 150ms a 600ms e confronta la velocità.
- Salva e ricarica la pagina dopo ogni modifica. Confronta gli elementi che devono cambiare con quelli che devono restare invariati.
- Ispeziona il risultato: usa il menu Ispeziona e controlla Styles/Regole e Computed/Calcolato. Per layout Flex o Grid attiva l’overlay, se disponibile.
- Annota causa ed effetto: scrivi il valore o la struttura iniziale, il cambiamento e il risultato. Ripristina il punto di partenza prima dell’esercizio autonomo.
Il link si sposta lievemente in hover. Con movimento ridotto lo spostamento viene rimosso, mentre collegamento e focus restano utilizzabili.
Il font e alcuni dettagli dell’interfaccia dipendono dal browser. Valuta la proprietà e il comportamento descritti, non una corrispondenza perfetta con uno screenshot.
Verifica del risultato
| Controllo | Criterio |
|---|---|
| Effetto specifico | Il link si sposta lievemente in hover. Con movimento ridotto lo spostamento viene rimosso, mentre collegamento e focus restano utilizzabili. |
| Corrispondenza del codice | Individua la dichiarazione o la relazione HTML responsabile della differenza. |
| Persistenza | Riporta la modifica nel file e verifica dopo un ricaricamento. |
| Spiegazione | Motiva la differenza senza affidarti soltanto a uno screenshot. |
Esercizio autonomo
Anima soltanto lo sfondo con durata 200ms e conserva la regola per il movimento ridotto.
Consegna: file modificati e una breve spiegazione di selettore, proprietà e risultato. Criterio di riuscita: il cambiamento richiesto funziona dopo il ricaricamento e non taglia informazioni indispensabili.
.azione { transition: background-color 200ms ease; }
.azione:hover { transform: none; background-color: #dbe8f5; }
@media (prefers-reduced-motion: reduce) {
.azione { transition: none; }
}Integra la soluzione nel punto pertinente: modifica o sostituisci le regole coinvolte invece di accumulare dichiarazioni contraddittorie. Le altre parti dell’esempio restano necessarie.
Verifica dei concetti
Passaggi fra stati con transition: interpretazione e applicazione.
Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.
1. Che cosa serve per osservare una transizione? ▾
2. Come si interpreta il codice dell’esempio? ▾
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Riferimento tecnico: MDN — riferimento CSS. Cerca le proprietà o i selettori utilizzati nell’esempio.