Flexbox CSS
- Pagina precedente Box Sizing CSS
- Pagina successiva Query media CSS
Modulo di layout CSS Flexbox
Prima dell'introduzione del modulo di layout Flexbox, i modelli di layout disponibili erano i seguenti quattro:
- Blocco (Block), utilizzato per parti (sezioni) del sito web
- In linea (Inline), utilizzato per il testo
- Tabella, utilizzata per dati di tabella bidimensionale
- Posizionamento, utilizzato per posizionare esplicitamente gli elementi
Il modulo di layout a scatola flessibile, che permette di progettare più facilmente strutture di layout responsive, senza dover utilizzare il flusso o la posizionamento.
Supporto del browser
Tutti i browser moderni lo supportano flexbox
Proprietà.
29.0 | 11.0 | 22.0 | 10 | 48 |
Elementi Flexbox
Per iniziare a utilizzare il modello Flexbox, è necessario definire prima il contenitore Flex.
Gli elementi superiori rappresentano un contenitore flex con tre elementi flex (area blu).
Example
Contenitore flex con tre elementi flex:
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> </div>
L'elemento genitore (contenitore)
Tramite l'uso di: display
L'attributo è impostato su: flex
Il contenitore flex sarà elastico:
Example
.flex-container { display: flex; }
Di seguito sono riportati gli attributi del contenitore flex:
Proprietà flex-direction
flex-direction
L'attributo definisce in quale direzione il contenitore deve impilare gli elementi flex.
Example
column
Il valore imposta l'impilamento verticale degli elementi flex (da alto a basso):
.flex-container { display: flex; flex-direction: column; }
Example
column-reverse
Il valore impila gli elementi flex verticalmente (da basso a alto):
.flex-container { display: flex; flex-direction: column-reverse; }
Example
row
Il valore impila gli elementi flex orizzontalmente (da sinistra a destra):
.flex-container { display: flex; flex-direction: row; }
Example
row-reverse
Il valore impila gli elementi flex orizzontalmente (da destra a sinistra):
.flex-container { display: flex; flex-direction: row-reverse; }
Proprietà flex-wrap
flex-wrap
L'attributo determina se gli elementi flex devono essere ribaltati:
L'esempio seguente contiene 12 elementi flex per illustrare meglio l'attributo flex-wrap.
Example
wrap
Il valore determina che gli elementi flex si ribalteranno se necessario:
.flex-container { display: flex; flex-wrap: wrap; }
Example
nowrap
Il valore determina che non si ribalteranno gli elementi flex (predefinito):
.flex-container { display: flex; flex-wrap: nowrap; }
Example
wrap-reverse
Il valore determina che, se necessario, gli elementi flex si ribaltano in ordine inverso:
.flex-container { display: flex; flex-wrap: wrap-reverse; }
Proprietà flex-flow
flex-flow
L'attributo è una abbreviazione per impostare contemporaneamente gli attributi flex-direction e flex-wrap.
Example
.flex-container { display: flex; flex-flow: row wrap; }
Proprietà justify-content
justify-content
L'attributo serve per allineare gli elementi flex:
Example
center
Il valore allinea gli elementi flex al centro del contenitore:
.flex-container { display: flex; justify-content: center; }
Example
flex-start
Il valore allinea gli elementi flex all'inizio del contenitore (predefinito):
.flex-container { display: flex; justify-content: flex-start; }
Example
flex-end
Il valore allinea gli elementi flex all'estremità finale del contenitore:
.flex-container { display: flex; justify-content: flex-end; }
Example
space-around
Il valore mostra gli elementi flex con spazi prima, tra e dopo le righe:
.flex-container { display: flex; justify-content: space-around; }
Example
space-between
Il valore mostra gli elementi flex con spazi tra le righe:
.flex-container { display: flex; justify-content: space-between; }
Proprietà align-items
align-items
L'attributo serve per allineare verticalmente gli elementi flex.
In questi esempi, utilizziamo contenitori di 200 pixel di altezza per illustrare meglio l'attributo align-items.
Example
center
Il valore allinea i progetti flex nel centro del contenitore:
.flex-container { display: flex; height: 200px; align-items: center; }
Example
flex-start
Il valore allinea i progetti flex all'inizio del contenitore:
.flex-container { display: flex; height: 200px; align-items: flex-start; }
Example
flex-end
Il valore allinea i progetti elastiche alla fine del contenitore:
.flex-container { display: flex; height: 200px; align-items: flex-end; }
Example
stretch
Il valore allunga i progetti flex per riempire il contenitore (predefinito):
.flex-container { display: flex; height: 200px; align-items: stretch; }
Example
baseline
Il valore allinea i progetti flex secondo la linea di base:
.flex-container { display: flex; height: 200px; align-items: baseline; }
Attenzione:Questo esempio utilizza diversi font-size per illustrare come i progetti sono allineati secondo la linea di base del testo:
Proprietà align-content
align-content
La proprietà viene utilizzata per allineare le linee elastiche.
In questi esempi, utilizziamo un contenitore di 600 pixel di altezza e impostiamo l'attributo flex-wrap su wrap per illustrare meglio l'attributo align-content.
Example
space-between
Il valore visualizza le linee elastiche con spazi uguali tra di esse:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-between; }
Example
space-around
Il valore visualizza le linee elastiche con spazi prima, tra e dopo:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: space-around; }
Example
stretch
Il valore allunga le linee elastiche per occupare lo spazio rimanente (predefinito):
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: stretch; }
Example
center
Il valore viene visualizzato nel centro del contenitore per le linee elastiche:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: center; }
Example
flex-start
Il valore viene visualizzato all'inizio del contenitore per le linee elastiche:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-start; }
Example
flex-end
Il valore viene visualizzato alla fine del contenitore per le linee elastiche:
.flex-container { display: flex; height: 600px; flex-wrap: wrap; align-content: flex-end; }
Centratura perfetta
Nell'esempio seguente, risolveremo un problema di stile molto comune: centratura perfetta.
Soluzione: impostare justify-content
e align-items
Impostare le proprietà di centro, quindi i progetti flex saranno perfettamente centrati:
Example
.flex-container { display: flex; height: 300px; justify-content: center; align-items: center; }
Elementi figli (progetti)
I elementi diretti figli del contenitore flex diventeranno automaticamente elementi flessibili (flex).
Gli elementi superiori rappresentano quattro elementi flessibili blu all'interno di un contenitore flessibile grigio.
Example
<div class="flex-container"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> </div>
Gli attributi utilizzati per gli elementi flessibili sono:
order
flex-grow
flex-shrink
flex-basis
flex
align-self
Attributo order
order
L'attributo definisce l'ordine degli elementi flex.
Il primo elemento flex non deve essere visualizzato come il primo elemento nella disposizione.
order
Il valore deve essere un numero, il valore predefinito è 0.
Example
order
L'attributo può modificare l'ordine degli elementi flex.
<div class="flex-container"> <div style="order: 3">1</div> <div style="order: 2">2</div> <div style="order: 4">3</div> <div style="order: 1">4</div> </div>
Attributo flex-grow
flex-grow
L'attributo definisce quanto un elemento flex crescerà rispetto agli altri elementi flex.
Questo valore deve essere un numero, il valore predefinito è 0.
Example
Fai sì che la velocità di crescita del terzo elemento flessibile sia otto volte maggiore rispetto agli altri elementi flessibili:
<div class="flex-container"> <div style="flex-grow: 1">1</div> <div style="flex-grow: 1">2</div> <div style="flex-grow: 8">3</div> </div>
Attributo flex-shrink
flex-shrink
L'attributo definisce quanto un elemento flex si ridurrà rispetto agli altri elementi flex.
Questo valore deve essere un numero, il valore predefinito è 0.
Example
Non far sì che il terzo elemento flessibile si riduca quanto gli altri elementi flessibili:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-shrink: 0">3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <div>8</div> <div>9</div> <div>10</div> </div>
Attributo flex-basis
flex-basis
L'attributo definisce la lunghezza iniziale degli elementi flex.
Example
Imposta la lunghezza iniziale del terzo elemento flessibile a 200 pixel:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex-basis: 200px">3</div> <div>4</div> </div>
Attributo flex
flex
L'attributo è una abbreviazione degli attributi flex-grow, flex-shrink e flex-basis.
Example
Rende il terzo elemento flessibile non aumentabile (0), non riducibile (0) e di lunghezza iniziale di 200 pixel:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="flex: 0 0 200px">3</div> <div>4</div> </div>
Attributo align-self
align-self
L'attributo definisce il modo di allineamento degli elementi selezionati all'interno del contenitore flessibile.
align-self
The property will override the default alignment method set by the container's align-items property.
In these examples, we use a container that is 200 pixels high to better demonstrate the align-self property:
Example
Align the third flexible item to the center of the container:
<div class="flex-container"> <div>1</div> <div>2</div> <div style="align-self: center">3</div> <div>4</div> </div>
Example
Align the second flexible item to the top of the container, and align the third flexible item to the bottom of the container:
<div class="flex-container"> <div>1</div> <div style="align-self: flex-start">2</div> <div style="align-self: flex-end">3</div> <div>4</div> </div>
Responsive Image Gallery Using Flexbox
Create a responsive image gallery using flexbox, which changes between four, two, or full-width images based on screen size:
Responsive Website Using Flexbox
Create responsive websites using flexbox, including flexible navigation bars and flexible content:
CSS Flexbox Properties
The following table lists the CSS properties used with flexbox:
Property | Description |
---|---|
display | Specifies the box type used for HTML elements. |
flex-direction | Specifies the direction of flexible items within the flexible container. |
justify-content | Horizontally align these items when flexible items do not use all available space on the main axis. |
align-items | Vertically align these items when flexible items do not use all available space on the main axis. |
flex-wrap | Specifies whether flexible items should wrap onto another line if there is not enough space on a single flex line to contain them. |
align-content | Modifies the behavior of the flex-wrap property. Similar to align-items, but it aligns the flex line instead of the flexible items. |
flex-flow | Abbreviated properties of flex-direction and flex-wrap. |
order | Specifies the order of flexible items relative to other flexible items within the same container. |
align-self | Used for flexible items. Overrides the container's align-items property. |
flex | Abbreviated properties of flex-grow, flex-shrink and flex-basis. |
- Pagina precedente Box Sizing CSS
- Pagina successiva Query media CSS