CSS Fogli Di Stile

Pseudo Classi

Pseudo classi: teoria, esempi e sperimentazione nel browser.

Prerequisiti: Selettori di attributo.

Pseudo-classi: stati e condizioni

Pseudo-classi: stati e condizioni: fondamenti.

Una pseudo-classe esprime una condizione o uno stato dell’elemento. :hover riguarda il puntatore; :focus-visible il focus quando il browser considera opportuno evidenziarlo. :first-child e :nth-child() dipendono dalla posizione fra i fratelli. La pseudo-classe si aggiunge al selettore con i due punti e non deve essere inserita come classe nell’HTML.

Come funziona: pseudo-classi: stati e condizioni

Pseudo-classi: stati e condizioni: comportamento nel browser.

La navigazione da tastiera richiede che l’elemento attivo sia riconoscibile. Non togliere l’outline del focus senza una valida alternativa. Hover non è una soluzione universale: sui dispositivi touch il comportamento può essere diverso. Informazioni indispensabili devono essere disponibili senza obbligare l’utente a usare un mouse.

Scelte di utilizzo e limiti

Pseudo-classi: stati e condizioni: progetto e verifica.

:nth-child(2) individua un elemento in seconda posizione fra i fratelli, non necessariamente il secondo elemento di quel tipo. Per filtrare per tipo esistono selettori come :nth-of-type(). Mantieni distinte posizione strutturale, stato interattivo e classe HTML: cambiare la struttura può modificare il risultato di un selettore posizionale.

Idea chiave: La seconda voce è grassetto. Il link cambia con il puntatore e resta riconoscibile quando lo raggiungi premendo Tab.

Esempio commentato

Pseudo-classi: stati e condizioni: 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>Pseudo-classi</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<ul class="elenco"><li>Uno</li><li>Due</li><li>Tre</li></ul>
<a href="#fine">Vai alla fine</a>
<p id="fine">Fine</p>
</body>
</html>

File stile.css

.elenco li:nth-child(2) { font-weight: bold; }
a:hover { text-decoration-thickness: 3px; }
a:focus-visible { outline: 3px solid navy; outline-offset: 3px; }

La seconda voce è grassetto. Il link cambia con il puntatore e resta riconoscibile quando lo raggiungi premendo Tab.

ProprietàValore nell’esempioSignificato
font-weightboldPeso del carattere.
text-decoration-thickness3pxSpessore della decorazione del testo.
outline3px solid navyContorno che non occupa spazio come un bordo.
outline-offset3pxDistanza fra contorno e scatola.
Attenzione: Non affidare informazioni essenziali al solo hover e non rimuovere il focus visibile.

LABORATORIO

Sperimentare: Pseudo-classi: stati e condizioni

La seconda voce è grassetto. Il link cambia con il puntatore e resta riconoscibile quando lo raggiungi premendo Tab.

Obiettivo: Comprendere e applicare pseudo-classi: stati e condizioni 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: Inserisci una voce prima di Uno e premi poi Tab fino al collegamento.
  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

La seconda posizione ora appartiene a Uno. Il link riceve il contorno di focus durante la navigazione da tastiera.

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 specificoLa seconda posizione ora appartiene a Uno. Il link riceve il contorno di focus durante la navigazione da tastiera.
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

Evidenzia le voci nelle posizioni dispari con uno sfondo chiaro.

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
.elenco li:nth-child(odd) { background-color: #eef4fa; }

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

Pseudo-classi: stati e condizioni: interpretazione e applicazione.

Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.

1. Quale pseudo-classe è utile per evidenziare il focus da tastiera? ▾
Risposta: :focus-visible. Una pseudo-classe esprime una condizione o uno stato dell’elemento. :hover riguarda il puntatore; :focus-visible il focus quando il browser considera opportuno evidenziarlo. :first-child e :nth-child() dipendono dalla posizione fra i fratelli. La pseudo-classe si aggiunge al selettore con i due punti e non deve essere inserita come classe nell’HTML.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: La seconda voce è grassetto. Il link cambia con il puntatore e resta riconoscibile quando lo raggiungi premendo Tab.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: La seconda posizione ora appartiene a Uno. Il link riceve il contorno di focus durante la navigazione da tastiera.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: Non affidare informazioni essenziali al solo hover e non rimuovere il focus visibile.

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