Prerequisiti: Posizionamento sticky.
Ordine di impilamento e contesti
Ordine di impilamento e contesti: fondamenti.
Quando le scatole si sovrappongono, z-index può controllare l’ordine nei contesti di impilamento pertinenti. Per gli elementi posizionati dell’esempio un numero più alto nello stesso contesto li porta davanti. z-index non è però una classifica globale di tutta la pagina.
Come funziona: ordine di impilamento e contesti
Ordine di impilamento e contesti: comportamento nel browser.
Un contesto di impilamento si comporta come un gruppo rispetto all’esterno. Un figlio con z-index enorme non può superare liberamente un altro gruppo collocato sopra il suo genitore. Position con valori di z-index appropriati, transform e opacity inferiore a 1 sono fra le condizioni che possono creare contesti. Anche flex e grid item hanno comportamenti pertinenti a z-index senza richiedere sempre position.
Scelte di utilizzo e limiti
Ordine di impilamento e contesti: progetto e verifica.
Per correggere una sovrapposizione identifica prima i gruppi e gli antenati. Aumentare ripetutamente il numero nasconde la causa e non garantisce il risultato. Usa piccoli valori documentati e una gerarchia comprensibile, verificando che la sovrapposizione non copra controlli o testo.
Esempio commentato
Ordine di impilamento e contesti: 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>z-index e contesti di impilamento</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<div class="area"><div class="uno">Scatola uno</div><div class="due">Scatola due</div></div>
</body>
</html>
File stile.css
.area { position: relative; height: 10rem; }
.uno, .due { position: absolute; width: 12rem; height: 6rem; padding: 1rem; border: 1px solid navy; }
.uno { top: 0; left: 0; background-color: #eef4fa; z-index: 1; }
.due { top: 2rem; left: 4rem; background-color: #fff3cd; z-index: 2; }
Risultato nel browser
Le scatole sono nello stesso semplice contesto: due passa davanti a uno nella zona sovrapposta.
| Proprietà | Valore nell’esempio | Significato |
|---|---|---|
position | relative | Modalità di posizionamento. |
height | 10rem | Altezza secondo box model e contesto. |
width | 12rem | Larghezza secondo box model e contesto. |
padding | 1rem | Spazio interno fra contenuto e bordo. |
border | 1px solid navy | Abbreviazione per spessore, stile e colore del bordo. |
top | 0 | Offset superiore in un contesto di posizionamento pertinente. |
LABORATORIO
Sperimentare: Ordine di impilamento e contesti
Le scatole sono nello stesso semplice contesto: due passa davanti a uno nella zona sovrapposta.
Obiettivo: Comprendere e applicare ordine di impilamento e contesti 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: Scambia i valori 1 e 2 delle due scatole.
- 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 scatola uno passa davanti a due. Il testo può essere coperto nella zona sovrapposta.
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 scatola uno passa davanti a due. Il testo può essere coperto nella zona sovrapposta. |
| 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
Porta uno davanti mantenendo numeri piccoli e aggiungi un commento che spieghi la scelta.
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.
.uno { z-index: 2; }
.due { z-index: 1; }
/* Uno deve stare sopra Due nello stesso contesto. */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
Ordine di impilamento e contesti: interpretazione e applicazione.
Seleziona una domanda per visualizzare la risposta e confrontarla con la tua.
1. z-index è una classifica globale fra tutti gli elementi? ▾
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.