Keywords: flex, flex items, columns, rows
Flexbox (Flexible Box Layout) è un modulo CSS che ci consente di creare layout flessibili e adattivi. In altre parole, ci permette di posizionare gli elementi HTML in modo fluido all'interno di un contenitore, adattandosi alla dimensione del contenitore e del dispositivo dell'utente.
Il concetto chiave di Flexbox è la creazione di un "container" (contenitore) che contiene uno o più "flex item" (elementi flessibili). Il contenitore ha diverse proprietà CSS che ci permettono di definire la direzione dei flex item, l'allineamento, lo spaziamento e altre opzioni di layout. I flex item, a loro volta, possono avere diverse proprietà CSS che ci permettono di definire la loro grandezza, ordine, allineamento e altre proprietà.
Ecco una lista delle proprietà principali:
display: flex;: specifica il container dei flex-items.flex-grow: <number>;: specifica quanto un flex-item deve ingrandire.flex-shrink: <number>;: quanto un flex-item deve rimpicciolire.flex-basis: <dimensione>;: specifica la grandezza di base di un flex-item.flex: <flex-grow> <flex-shrink> <flex-basis>;: una singola proprietà per
tutte e tre le precedenti.flex-direction: row/column;: Imposta la direzione principale dei flex item all'interno del
contenitore. row (predefinita) imposta la direzione da sinistra a destra (orizzontale), mentre column
imposta la direzione dall'alto in basso (verticale).align-items: stretch/flex-start/flex-end/center/baseline;: Imposta l'allineamento dei flex
item lungo la direzione trasversale del contenitore (opposta alla flex-direction). stretch (predefinito)
allunga i flex item per adattarsi all'altezza del contenitore, flex-start allinea i flex item all'inizio
del contenitore, flex-end li allinea alla fine, center li allinea al centro, baseline allinea i flex
item basandosi sulla loro linea base (il bordo inferiore della prima riga di testo all'interno di ogni
flex item).justify-content: flex-start/end/center/space-between/space-around;: Imposta l'allineamento
dei flex item lungo la direzione principale del contenitore (flex-direction). flex-start (predefinito)
allinea i flex item verso l'inizio del contenitore, flex-end li allinea verso la fine, center li allinea
al centro, space-between li allinea con uno spazio equidistante tra di loro e space-around li allinea
con uno spazio equidistante tra di loro e agli estremi del contenitore.flex-wrap: nowrap/wrap/wrap-reverse;: Imposta il comportamento di wrapping dei flex item
quando superano la larghezza del contenitore. nowrap (predefinito) fa sì che i flex item rimangano su
una sola riga, mentre wrap li fa scorrere su più righe. wrap-reverse fa lo stesso di wrap, ma inverte
l'ordine delle righe.<header>
<h1>Sample flexbox example</h1>
</header>
<section>
<article>
<h2>First article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.</p>
</article>
<article>
<h2>Second article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.</p>
</article>
<article>
<h2>Third article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.</p>
</article>
<article>
<h2>Fourth article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.</p>
</article>
<article>
<h2>Fifth article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.</p>
</article>
<article>
<h2>Sixth article</h2>
<p>Tacos actually microdosing, pour-over semiotics banjo chicharrones retro fanny pack portland everyday carry vinyl typewriter. Tacos PBR&B pork belly, everyday carry ennui pickled sriracha normcore hashtag polaroid single-origin coffee cold-pressed. PBR&B tattooed trust fund twee, leggings salvia iPhone photo booth health goth gastropub hammock.<p>
</article>
</section>
Usiamo questo stile di partenza, alla quale dobbiamo aggiungere le proprietà del flexbox per rendere il contenitore un flex-container e gli article dei flex-items. Devono essere tanti blocchi su una singola fila e diventare una colonna unica quando non ci sono almeno 300px per ogni article.
html {
font-family: sans-serif;
}
body {
margin: 0;
}
header {
background: purple;
height: 100px;
}
h1 {
text-align: center;
color: white;
line-height: 100px;
margin: 0;
}
article {
padding: 10px;
margin: 10px;
background: aqua;
}
© Andrea Schimmenti & Fabio Vitali. TW 2022-2023.