CSS Fogli Di Stile

Transizioni

Transizioni: teoria, esempi e sperimentazione nel browser.

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.

Idea chiave: La transizione è sullo stato di base, così accompagna anche il ritorno dall’hover. La preferenza reduce elimina il movimento decorativo.

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; }
}

La transizione è sullo stato di base, così accompagna anche il ritorno dall’hover. La preferenza reduce elimina il movimento decorativo.

ProprietàValore nell’esempioSignificato
displayinline-blockTipo di scatola e contesto di layout.
padding0.75rem 1remSpazio interno fra contenuto e bordo.
color#174a7eColore del testo; non imposta lo sfondo.
background-color#eef4faColore dello sfondo dell’elemento.
transitiontransform 150ms ease, background-color 150ms easeProprietà e tempi del passaggio fra valori.
transformtranslateY(-2px)Trasformazione visuale della scatola.
Attenzione: Elencare le proprietà evita di animare involontariamente altre modifiche presenti o future.

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

  1. Osserva il punto di partenza: apri l’esempio, confronta markup e regole e individua il selettore o il contesto di layout rilevante.
  2. Esegui la modifica: Cambia la durata da 150ms a 600ms e confronta la velocità.
  3. Salva e ricarica la pagina dopo ogni modifica. Confronta gli elementi che devono cambiare con quelli che devono restare invariati.
  4. Ispeziona il risultato: usa il menu Ispeziona e controlla Styles/Regole e Computed/Calcolato. Per layout Flex o Grid attiva l’overlay, se disponibile.
  5. 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.
Cosa devi vedere — Output atteso

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

ControlloCriterio
Effetto specificoIl link si sposta lievemente in hover. Con movimento ridotto lo spostamento viene rimosso, mentre collegamento e focus restano utilizzabili.
Corrispondenza del codiceIndividua la dichiarazione o la relazione HTML responsabile della differenza.
PersistenzaRiporta la modifica nel file e verifica dopo un ricaricamento.
SpiegazioneMotiva la differenza senza affidarti soltanto a uno screenshot.
Se il risultato non coincide: verifica file aperto, salvataggio, percorso del CSS, selettore e validità dei valori. Controlla poi la cascata e le dimensioni del viewport. Cambia una sola causa alla volta.

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.

Una possibile soluzione dell’esercizio
.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? ▾
Risposta: Un cambiamento di valore della proprietà interessata. 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.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: La transizione è sullo stato di base, così accompagna anche il ritorno dall’hover. La preferenza reduce elimina il movimento decorativo.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: Il link si sposta lievemente in hover. Con movimento ridotto lo spostamento viene rimosso, mentre collegamento e focus restano utilizzabili.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: Elencare le proprietà evita di animare involontariamente altre modifiche presenti o future.

Riferimento tecnico: MDN — riferimento CSS. Cerca le proprietà o i selettori utilizzati nell’esempio.