CSS Fogli Di Stile

Contenitore Ed Elementi Flex

Contenitore ed elementi flex: teoria, esempi e sperimentazione nel browser.

Prerequisiti: gli argomenti delle unità precedenti.

Contenitore e figli flex

Contenitore e figli flex: fondamenti.

display: flex attiva un contesto di layout per i figli diretti. Non trasforma automaticamente tutti i discendenti in flex item. Flexbox è pensato per organizzare elementi lungo un asse principale, eventualmente su più righe. flex-direction: row usa la direzione della riga; column quella della colonna. L’asse trasversale è perpendicolare al principale. Evita di memorizzare justify-content come sempre orizzontale: il suo asse cambia con flex-direction.

Come funziona: contenitore e figli flex

Contenitore e figli flex: comportamento nel browser.

justify-content distribuisce lo spazio disponibile lungo l’asse principale. align-items allinea gli elementi sull’asse trasversale; stretch è un comportamento comune per elementi con dimensione trasversale automatica. gap crea distanza fra elementi senza aggiungere margini esterni al gruppo. Se non c’è spazio residuo, justify-content non può creare spazio dal nulla. Per osservare gli allineamenti occorre quindi scegliere un contenitore e contenuti che rendano il fenomeno visibile.

Scelte di utilizzo e limiti

Contenitore e figli flex: progetto e verifica.

Il valore iniziale di flex-wrap è nowrap: gli elementi non si distribuiscono automaticamente su nuove righe. wrap abilita le righe aggiuntive. Le dimensioni finali dipendono anche da crescita e riduzione degli elementi, tema della prossima lezione. Non riordinare i contenuti solo per ragioni estetiche: l’ordine visivo e quello di lettura o navigazione da tastiera possono divergere se usi order o direzioni invertite.

Idea chiave: I tre link sono figli diretti e quindi flex item. gap li distanzia, center distribuisce lo spazio libero ai lati del gruppo e wrap consente nuove righe.

Esempio commentato

Contenitore e figli flex: 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>Contenitore ed elementi flex</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<nav class="menu" aria-label="Esempio">
<a href="#uno">Lezione uno</a>
<a href="#due">Lezione due</a>
<a href="#tre">Lezione tre</a>
</nav>
<section id="uno"><h2>Uno</h2></section>
<section id="due"><h2>Due</h2></section>
<section id="tre"><h2>Tre</h2></section>
</body>
</html>

File stile.css

.menu {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: center;
  padding: 1rem;
  border: 1px solid #174a7e;
}

I tre link sono figli diretti e quindi flex item. gap li distanzia, center distribuisce lo spazio libero ai lati del gruppo e wrap consente nuove righe.

ProprietàValore nell’esempioSignificato
displayflexTipo di scatola e contesto di layout.
flex-wrapwrapPossibilità di distribuire gli item su più linee.
gap1remDistanza fra elementi o tracce nel layout pertinente.
justify-contentcenterDistribuzione dello spazio sull’asse principale flex o delle tracce sull’asse inline grid.
align-itemscenterAllineamento degli item sull’asse pertinente.
padding1remSpazio interno fra contenuto e bordo.
Attenzione: No. Agisce sull’asse principale, che dipende da flex-direction e dalla modalità di scrittura.

LABORATORIO

Sperimentare: Contenitore e figli flex

I tre link sono figli diretti e quindi flex item. gap li distanzia, center distribuisce lo spazio libero ai lati del gruppo e wrap consente nuove righe.

Obiettivo: Comprendere e applicare contenitore e figli flex 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: Riduci la larghezza fino a provocare il ritorno a capo.
  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 row e spazio sufficiente i link stanno sulla stessa riga. In una finestra stretta possono andare a capo; con column sono disposti lungo la colonna.

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 row e spazio sufficiente i link stanno sulla stessa riga. In una finestra stretta possono andare a capo; con column sono disposti lungo la colonna.
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

Allinea il gruppo all’inizio dell’asse principale mantenendo gap e ritorno a capo.

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
.menu {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: flex-start;
}

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

Contenitore e figli flex: interpretazione e applicazione.

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

1. Quali elementi diventano flex item? ▾
Risposta: I figli diretti. display: flex attiva un contesto di layout per i figli diretti. Non trasforma automaticamente tutti i discendenti in flex item. Flexbox è pensato per organizzare elementi lungo un asse principale, eventualmente su più righe. flex-direction: row usa la direzione della riga; column quella della colonna. L’asse trasversale è perpendicolare al principale. Evita di memorizzare justify-content come sempre orizzontale: il suo asse cambia con flex-direction.
2. Come si interpreta il codice dell’esempio? ▾
Risposta: I tre link sono figli diretti e quindi flex item. gap li distanzia, center distribuisce lo spazio libero ai lati del gruppo e wrap consente nuove righe.
3. Quale risultato permette di verificare la modifica del laboratorio? ▾
Risposta: Con row e spazio sufficiente i link stanno sulla stessa riga. In una finestra stretta possono andare a capo; con column sono disposti lungo la colonna.
4. Quale attenzione evita un’interpretazione sbagliata? ▾
Risposta: No. Agisce sull’asse principale, che dipende da flex-direction e dalla modalità di scrittura.

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