Generatore CSS Flexbox
Flexbox è la scelta ideale per layout unidimensionali: righe di schede, barre di navigazione, hero centrati, moduli. Il modello contenitore-elemento è potente, ma le sue proprietà interagiscono in modi non ovvi. Questo generatore elimina le congetture sul contenitore: scegli flex-direction, justify-content, align-items, flex-wrap e gap, e ottieni una regola CSS pulita da copiare direttamente nel tuo foglio di stile.
Come generare il CSS
-
1
Scegli una direzione
Scegli row, column o le varianti inverse. Imposta flex-direction, cioè l'asse lungo cui scorrono gli elementi.
-
2
Imposta justify-content
Scegli come distribuire gli elementi lungo l'asse principale: inizio, centro, space-between, space-around o fine.
-
3
Imposta align-items
Scegli come allineare gli elementi sull'asse incrociato: stretch, inizio, centro o fine.
-
4
Imposta gap e wrap
Aggiungi spazio tra gli elementi in pixel e decidi se gli elementi vanno a capo.
-
5
Copia il CSS
Il generatore produce la regola del contenitore con tutte le proprietà, pronta da incollare nel foglio di stile.
Proprietà del contenitore
| Proprietà | Valori | Effetto |
|---|---|---|
flex-direction |
riga / colonna / riga-inversa / colonna-inversa | Asse principale |
flex-wrap |
nowrap / wrap / wrap-inversa | Se gli elementi si avvolgono |
justify-content |
flex-start / center / flex-end / space-between / space-around / space-evenly | Distribuzione dell’asse principale |
align-items |
flex-start / center / flex-end / baseline / stretch | Allineamento dell’asse incrociato di ogni riga |
align-content |
stessi valori + space-between / space-around | Quando avvolto, distribuzione dell’asse incrociato delle righe |
gap (row-gap, column-gap) |
lunghezza | Spaziatura tra gli elementi |
Proprietà degli elementi
| Proprietà | Valori | Effetto |
|---|---|---|
flex-grow |
0+ (senza unità) | Quota di spazio residuo da assorbire |
flex-shrink |
0+ (senza unità) | Quota di sovraccarico da ridurre |
flex-basis |
lunghezza o auto | Dimensione iniziale prima di crescere/ridursi |
flex |
shorthand (1 1 auto, ecc.) |
Tutti e tre in una volta |
align-self |
auto / flex-start / center / flex-end / baseline / stretch | Sovrascrive align-items per un elemento |
order |
intero | Riordina visivamente senza cambiare il DOM |
Il trucco flex: 1
flex: 1 è shorthand per flex: 1 1 0%. Fa sì che un elemento:
- Cresca per riempire lo spazio disponibile (crescita: 1)
- Si riduca se necessario (riduzione: 1)
- Parta da una dimensione zero (base: 0%)
Per colonne di larghezza uguale, flex: 1 su ogni elemento fornisce una divisione perfetta. Per barre laterali che non devono ridursi sotto il contenuto, usa flex: 0 0 240px (nessuna crescita, nessuna riduzione, base di 240px).
Modelli comuni
Eroe centrato
.hero {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
Navbar con logo a sinistra, link a destra
.nav {
display: flex;
align-items: center;
gap: 2rem;
}
.nav-links {
margin-left: auto; /* sposta a destra */
display: flex;
gap: 1rem;
}
Riga di schede reattiva
.card-row {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
}
.card {
flex: 1 1 260px; /* crescita/riduzione, 260px minimo prima di avvolgere */
}
Campo modulo con pulsante (input flessibile, pulsante fisso)
.field {
display: flex;
gap: 0.5rem;
}
.field input {
flex: 1;
}
.field button {
flex: 0 0 auto;
}
Flexbox vs. Grid
- Flexbox: una dimensione (riga O colonna). Migliore quando le dimensioni degli elementi sono guidate dal contenuto o quando distribuisci spazio lungo una singola linea.
- Grid: due dimensioni (righe E colonne con tracce esplicite). Migliore quando il layout ha una struttura di righe e colonne simultaneamente.
Per una barra di navigazione o una pila di schede: Flexbox. Per una griglia di schede prodotto con più righe di schede allineate: CSS Grid. Molte pagine reali usano entrambi, un layout di pagina Grid con Flexbox all’interno dei componenti.
Problemi comuni
- Elementi che non riempiono il contenitore: il default
align-items: stretchsi applica solo se gli elementi non hanno altezza fissa. Con altezza esplicita, rimangono a quella dimensione. gapnon funziona: controlla il supporto del browser. Il gap flex è arrivato tardi; Safari <14.1 non lo supportava. Ora è universale nel 2024+.- Figli di flex colonna che collassano: una colonna flex ha
align-items: stretchcome default, che allunga gli elementi alla larghezza del contenitore. Se un figlio imposta una larghezza, esce. orderè solo visivo: i lettori di schermo e la navigazione da tastiera seguono l’ordine del DOM. Non usareorderper rendere il contenuto sensato; usalo solo per la rifinitura visiva.
Domande frequenti
Grid per layout di pagina bidimensionali (righe e colonne insieme). Flexbox per distribuzioni unidimensionali (barra di navigazione, riga di pulsanti, pila). All’interno di una cella Grid, Flexbox per il layout interno. La maggior parte delle interfacce utente complesse utilizza entrambi.
Perché il default di flex-shrink è 1 ma il default di min-width è auto, che equivale alla larghezza del contenuto. Imposta min-width: 0 (o min-inline-size: 0) sull’elemento per consentirgli di ridursi sotto la sua dimensione intrinseca.
display: flex; justify-content: center; align-items: center; sul contenitore. Copre la stragrande maggioranza dei casi di “centra questa cosa” con due righe.
Sì, in tutti i browser moderni. Safari è arrivato tardi (aggiunto in 14.1, aprile 2021); oggi ogni browser principale lo supporta. Sostituisci la spaziatura basata su margin con gap ogni volta che puoi, molto più semplice.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Trova nome colore
Trova il colore CSS standard con nome più vicino a un valore HEX, RGB o HSL usando la differenza CIEDE2000.
Generatore di Palette di Colori
Genera palette monocromatiche, analoghe, complementari, triadiche o tetradiche da un colore base HEX ed esporta variabili CSS pronte da copiare.