Flexbox è un nuovo di tipo di layout in CSS3. L’utilizzo di questo tipo di layout assicura che gli elementi di comportino come vogliamo quando la pagina di deve adattare a differenti dimensioni dello schermo.
Il layout Flexbox si prefigge lo scopo di migliorare il modo di allineare e distribuire i contenuti di vari componenti all’interno della page web soprattuto quando, come nello scenario responsive attuale, non conosciamo a priori che tipo di schermo visualizzerà la nostra pagina e da qui in nome Flex, vale a dire flessibile e dinamico.
L’idea principale è che si deve dare al container principale l’abilità per alterare la dimensioni dei vari elementi ( altezza/larghezza) per sfruttare al massimo lo spazio messo a disposizione dallo schermo. In buona sostanza un container flex allarga gli elementi per riempire lo spazio o li stringe per evitare l’overflow.
L’aspetto più importante è che il layout flexbox non risente della direzione come il classico layout a blocchi che è o verticale o orizzontale e viene affetto da possibile problemi, per es. quando si ruota un tablet.
Questo layout è l’ideale per visualizzare le componenti di una Web Application.
Iniziamo con indicare che con flexbox si intende non una proprietà ma un vero e proprio modulo che contiene una serie di proprietà differenti: alcune di queste per configurare il “parent element” ( il flex container), altre invece per configurare i “children” ( i flex item).
Il layout flexbox è basato su direzioni flex-flow a differenza delle classiche block e inline. L’immagine sotto ( Flex Container by Mozilla Contributors nell’articolo Advanced Layout with Flexbox è sotto licenza CC-BY-SA 2.5) illustra bene il concetto.
Semplicemente gli elementi vengono sistemati o su main axis ( dal main-start al main-end) oppure sul cross axis (dal cross-start al cross-end):
Questo argomento è parte del Corso Web Design Avanzato. Contattaci subito per maggiori informazioni.