CSS Fogli Di Stile

Ereditarieta Delle Proprieta

Ereditarieta delle proprieta: teoria, esempi e sperimentazione nel browser.

Prerequisiti: Ordine delle dichiarazioni.

Ereditarietà delle proprietà

Ereditarietà delle proprietà: fondamenti.

Alcune proprietà, come color e molte proprietà dei caratteri, vengono normalmente ereditate. Se un figlio non riceve un valore applicabile per color, può usare il colore calcolato del genitore. Non tutte le proprietà si comportano così: bordo, margine e padding normalmente non si ereditano. Un bordo attorno a una sezione circonda la sezione; non significa che ogni paragrafo abbia ricevuto lo stesso bordo.

Come funziona: ereditarietà delle proprietà

Ereditarietà delle proprietà: comportamento nel browser.

L’ereditarietà interviene dopo che sono state risolte le dichiarazioni applicabili all’elemento. Una regola p { color: ... } applicata al figlio può quindi sostituire il colore che avrebbe ereditato, anche se il genitore è selezionato da un ID. Non confrontare la specificità della regola del genitore con quella del figlio come se riguardassero lo stesso elemento. Anche gli stili del browser possono assegnare direttamente valori, per esempio ai collegamenti.

Scelte di utilizzo e limiti

Ereditarietà delle proprietà: progetto e verifica.

inherit richiede il valore calcolato del genitore, anche per una proprietà normalmente non ereditata. initial richiede il valore iniziale definito dalla proprietà, che non coincide necessariamente con lo stile usuale del browser. unset si comporta come inherit per proprietà ereditate e come initial per le altre. Queste parole chiave sono strumenti espliciti: sceglile dopo avere stabilito se vuoi seguire il genitore o tornare al valore iniziale.

Idea chiave: Il primo paragrafo eredita il blu. Il secondo riceve una dichiarazione diretta. Il bordo appartiene alla sezione, non ai paragrafi.

Esempio commentato

Ereditarietà delle proprietà: 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>Ereditarietà delle proprietà</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<section class="scheda">
  <p>Colore ereditato.</p>
  <p class="autonomo">Colore applicato direttamente.</p>
</section>
</body>
</html>

File stile.css

.scheda {
  color: #174a7e;
  border: 2px solid #174a7e;
  padding: 16px;
}
.autonomo {
  color: #8b1e3f;
}

Il primo paragrafo eredita il blu. Il secondo riceve una dichiarazione diretta. Il bordo appartiene alla sezione, non ai paragrafi.

ProprietàValore nell’esempioSignificato
color#174a7eColore del testo; non imposta lo sfondo.
border2px solid #174a7eAbbreviazione per spessore, stile e colore del bordo.
padding16pxSpazio interno fra contenuto e bordo.
Attenzione: No. Usa il valore iniziale della proprietà definito da CSS, non necessariamente quello del foglio del browser.

LABORATORIO

Sperimentare: Ereditarietà delle proprietà

Il primo paragrafo eredita il blu. Il secondo riceve una dichiarazione diretta. Il bordo appartiene alla sezione, non ai paragrafi.

Obiettivo: Comprendere e applicare ereditarietà delle proprietà 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: Ispeziona il secondo e individua la regola autonoma.
  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

Con inherit entrambi i paragrafi seguono il colore della sezione. Non compaiono nuovi bordi sui figli.

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 specificoCon inherit entrambi i paragrafi seguono il colore della sezione. Non compaiono nuovi bordi sui figli.
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

Fai ereditare esplicitamente il colore alla classe autonomo, mantenendo il bordo solo sulla sezione.

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
.autonomo {
  color: inherit;
}

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

Ereditarietà delle proprietà: interpretazione e applicazione.

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

1. Quale proprietà è normalmente ereditata? ▾
Risposta: color. Alcune proprietà, come color e molte proprietà dei caratteri, vengono normalmente ereditate. Se un figlio non riceve un valore applicabile per color, può usare il colore calcolato del genitore. Non tutte le proprietà si comportano così: bordo, margine e padding normalmente non si ereditano. Un bordo attorno a una sezione circonda la sezione; non significa che ogni paragrafo abbia ricevuto lo stesso bordo.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: Il primo paragrafo eredita il blu. Il secondo riceve una dichiarazione diretta. Il bordo appartiene alla sezione, non ai paragrafi.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: Con inherit entrambi i paragrafi seguono il colore della sezione. Non compaiono nuovi bordi sui figli.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: No. Usa il valore iniziale della proprietà definito da CSS, non necessariamente quello del foglio del browser.

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