Prerequisiti: gli argomenti delle unità precedenti.
Proprietà personalizzate e var()
Proprietà personalizzate e var(): fondamenti.
Una proprietà personalizzata ha un nome che inizia con due trattini, per esempio --colore-accento. Si dichiara dentro una regola CSS e si usa mediante var(--colore-accento). :root seleziona l’elemento radice, che in un documento HTML è html: è un posto comune per definire valori condivisi. Non si tratta di una sostituzione testuale eseguita prima del browser: le proprietà personalizzate partecipano alla cascata e, nella forma ordinaria qui usata, si ereditano.
Come funziona: proprietà personalizzate e var()
Proprietà personalizzate e var(): comportamento nel browser.
Un componente può ridefinire una proprietà personalizzata e fornire il nuovo valore ai propri discendenti. Ciò permette varianti senza riscrivere ogni dichiarazione di colore. I nomi sono sensibili a maiuscole e minuscole: --Accento e --accento non indicano la stessa proprietà. Nomi che descrivono funzione e ruolo, come --colore-bordo, rendono più comprensibile il foglio rispetto a nomi numerici scollegati dal significato.
Scelte di utilizzo e limiti
Proprietà personalizzate e var(): progetto e verifica.
var(--accento, #174a7e) offre un fallback quando la proprietà personalizzata non è disponibile o ha un valore garantito invalido. Non è però una verifica generica del tipo: se --accento è definita come 20px, il fallback non converte quel valore in un colore valido. Una dichiarazione color che riceve quella lunghezza diventa invalida al momento del calcolo. Non assumere che in questo caso riemerga automaticamente una precedente dichiarazione color.
Esempio commentato
Proprietà personalizzate e var(): 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>Proprietà personalizzate e var()</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<section class="scheda"><h1>Stile condiviso</h1><p>Questa scheda usa l’accento radice.</p></section>
<section class="scheda variante"><h2>Variante</h2><p>Questa scheda ridefinisce l’accento.</p></section>
</body>
</html>
File stile.css
:root {
--accento: #174a7e;
--spazio: 1rem;
}
.scheda {
color: var(--accento, #174a7e);
border: 2px solid var(--accento);
padding: var(--spazio);
margin-bottom: var(--spazio);
}
.variante { --accento: #8b1e3f; }
Risultato nel browser
Il bordo e il testo leggono lo stesso valore. La seconda scheda cambia accento tramite una sola proprietà personalizzata locale.
| Proprietà | Valore nell’esempio | Significato |
|---|---|---|
color | var(--accento, #174a7e) | Colore del testo; non imposta lo sfondo. |
border | 2px solid var(--accento) | Abbreviazione per spessore, stile e colore del bordo. |
padding | var(--spazio) | Spazio interno fra contenuto e bordo. |
margin-bottom | var(--spazio) | Margine inferiore. |
LABORATORIO
Sperimentare: Proprietà personalizzate e var()
Il bordo e il testo leggono lo stesso valore. La seconda scheda cambia accento tramite una sola proprietà personalizzata locale.
Obiettivo: Comprendere e applicare proprietà personalizzate e var() 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: Verifica che la variante conservi il proprio accento.
- 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.
La variante rimane indipendente dal colore radice. Il valore di spazio condiviso modifica padding e margine di entrambe le schede.
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 | La variante rimane indipendente dal colore radice. Il valore di spazio condiviso modifica padding e margine di entrambe le schede. |
| 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
Aggiungi una terza variante verde modificando soltanto --accento.
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.
.variante-verde {
--accento: #27683b;
}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
Proprietà personalizzate e var(): interpretazione e applicazione.
Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.
1. Come si legge --accento? ▾
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.