Prerequisiti: gli argomenti delle unità precedenti.
Criteri della cascata
Criteri della cascata: fondamenti.
Più regole possono assegnare valori diversi alla stessa proprietà dello stesso elemento. Il browser non sceglie casualmente: usa la cascata. Considera prima aspetti come origine, importanza e livelli di cascata; la specificità confronta dichiarazioni concorrenti nello stesso contesto pertinente. In questa lezione usiamo solo normali regole dell’autore senza livelli, animazioni o !important: questa limitazione rende il confronto osservabile senza nascondere il modello generale.
Come funziona: criteri della cascata
Criteri della cascata: comportamento nel browser.
Per i selettori qui usati conta gli ID, poi classi, attributi e pseudo-classi, infine tipi e pseudo-elementi. Il confronto è lessicografico: una componente maggiore prevale senza convertire il conteggio in un semplice numero decimale. #messaggio ha specificità (1,0,0), .nota ha (0,1,0), p ha (0,0,1). Il combinatore e il selettore universale non aggiungono peso. Se la specificità è uguale, nel caso semplice di questa lezione prevale la dichiarazione che compare dopo.
Scelte di utilizzo e limiti
Criteri della cascata: progetto e verifica.
Nei DevTools una dichiarazione superata appare spesso barrata. Individua la regola vincente prima di aumentare la specificità. !important cambia la priorità della dichiarazione e non aggiunge punti al selettore: usarlo sistematicamente rende i conflitti più difficili da gestire. Gli stili inline hanno un trattamento distinto dai normali selettori; non includerli in conteggi improvvisati. È preferibile mantenere regole chiare e poco dipendenti dagli ID.
Esempio commentato
Criteri della cascata: 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>Come funziona la cascata</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<p class="nota" id="messaggio">Quale colore prevale?</p>
</body>
</html>
File stile.css
p { color: green; }
.nota { color: blue; }
#messaggio { color: purple; }
.nota { color: orange; }
Risultato nel browser
Tutte le regole corrispondono al paragrafo. Per color prevale #messaggio. L’ultima regola .nota non supera l’ID soltanto perché è scritta dopo.
| Proprietà | Valore nell’esempio | Significato |
|---|---|---|
color | green | Colore del testo; non imposta lo sfondo. |
LABORATORIO
Sperimentare: Criteri della cascata
Tutte le regole corrispondono al paragrafo. Per color prevale #messaggio. L’ultima regola .nota non supera l’ID soltanto perché è scritta dopo.
Obiettivo: Comprendere e applicare criteri della cascata 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: Osserva nei DevTools le dichiarazioni barrate.
- 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 colore iniziale è viola. Senza la regola dell’ID prevale l’ultima dichiarazione di classe: arancione, oppure blu dopo il riordino indicato.
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 colore iniziale è viola. Senza la regola dell’ID prevale l’ultima dichiarazione di classe: arancione, oppure blu dopo il riordino indicato. |
| 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
Senza !important né ID, assegna due colori a .nota e fai prevalere il blu.
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.
.nota { color: orange; }
.nota { color: blue; }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
Criteri della cascata: interpretazione e applicazione.
Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.
1. La cascata confronta soltanto la posizione delle regole? ▾
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.