modulo flexbox reattivo
consente di gestire rapidamente allineamento e dimensionamento delle colonne della griglia, della navigazione, dei componenti e altro.NOTA:
la notazione {breakpoint} o breakpoint o BREAKPOINT
rappresenta dei segna posti per: sm md lg xl
sm md lg xl
sono sempre sensibili a: .flex-BREAKPOINT-*
e quindi è possibile controllare i vari punti di interruzione.NOTA:
Nel corso delle spiegazioni lo stile sotto descritto, verrà assunto
negli ESEMPI, al solo scopo di rendere evidente la colorazione del layout, altrimenti non visibile.
<style type="text/css">
.democ {
padding: .75rem;
background-color: #f0f0f0;
}
.democh {
padding: .75rem;
background-color: #f0f0f0;
height: 250px;
}
.demoe {
padding: 0.50rem;
background-color: #e0e0e0;
border: 1px solid #ccc;
}
</style>
.d-flex
o .d-inline-flex
.d-BREAKPOINT-flex
e .d-BREAKPOINT-inline-flex
in modo da poter modificare la visualizzazione flessibile per ogni punto di interruzione.
<div class="d-flex p-3 democ">Sono un contenitore flexbox!</div>
<br>
<div class="d-inline-flex p-3 democ">Sono un contenitore flexbox in linea!</div>
.flex-row
per impostare una direzione orizzontale (impostazione predefinita del browser) o .flex-row-reverse
per avviare la direzione orizzontale dal lato opposto.
<div class="d-flex flex-row mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-row-reverse democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
.flex-column
per impostare una direzione verticale o .flex-column-reverse
per iniziare la direzione verticale dal lato opposto.
<div class="d-flex flex-column mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column-reverse mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
justify-content
per modificare l'allineamento degli elementi flessibili sull'asse orizzontale: flex-direction: row
o sulla'asse verticale: flex-direction: column
start
(impostazione predefinita del browser), end, center, between, o around
.
<h5>Giustificato in orizzontale</h5>
<div class="d-flex justify-content-start mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex justify-content-end mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex justify-content-center mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex justify-content-between mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex justify-content-around mb-3 democ">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<h5>Giustificato in verticale</h5>
<div class="d-flex flex-column justify-content-start mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column justify-content-end mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column justify-content-center mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column justify-content-between mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column justify-content-around mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
align-items
per modificare l'allineamento degli elementi flessibili sull'asse orizzontale: flex-direction: row
o sulla'asse verticale: flex-direction: column
start
(impostazione predefinita del browser), end, center, baseline, o stretch
.
<h5>Allineato in orizzontale</h5>
<div class="d-flex align-items-start mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex align-items-end mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex align-items-center mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex align-items-baseline mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex align-items-strech mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
</section>
<br>
<section>
<h5>Allineato in verticale</h5>
<div class="d-flex flex-column align-items-start mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column align-items-end mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column align-items-center mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column align-items-baseline mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex flex-column align-items-strech mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="demoe">Flex item 2</div>
<div class="demoe">Flex item 3</div>
</div>
align-self:
permette di specificare l’allineamento di un singolo elemento rispetto al contenitore, sovrascrivendo il valore definito con align-items
. I valori possibili sono gli stessi visti per align-items
.
<div class="d-flex mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="align-self-start demoe">Flex align-self-start 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="align-self-end demoe">Flex align-self-end 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="align-self-center demoe">Flex align-self-center 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="align-self-baseline demoe">Flex align-self-baseline 2</div>
<div class="demoe">Flex item 3</div>
</div>
<div class="d-flex mb-3 democh">
<div class="demoe">Flex item 1</div>
<div class="align-self-strech demoe">Flex align-self-strech 2</div>
<div class="demoe">Flex item 3</div>
</div>
.flex-fill
su una serie di elementi di pari livello per forzarli in larghezze uguali al loro contenuto
<div class="d-flex democ">
<div class="flex-fill demoe">Flex item: elemento con contenuto più lungo</div>
<div class="flex-fill demoe">Flex item</div>
<div class="flex-fill demoe">Flex item</div>
</div>
.flex-grow-*
per cambiare la capacità di un oggetto flessibile di crescere per riempire lo spazio disponibile..flex-grow-1
utilizza tutto lo spazio disponibile che può, pur consentendo ai rimanenti due elementi flessibili il loro spazio necessario.
<div class="d-flex democ">
<div class="flex-grow-1 demoe">Flex item: flex-grow-1</div>
<div class="demoe">Secondo elemento Flex</div>
<div class="demoe">Quello che segue é il terzo elemento Flex</div>
</div>
.flex-shrink-*
per cambiare la capacità di un oggetto flessibile di restringersi al massimo necessario.flex-shrink-1
è costretto a restringere il suo contenuto in una senda riga, per consentire maggiore spazio al precedente elememto flessibile con .w-100
.
<div class="d-flex democ">
<div class="w-100 demoe">Flex item</div>
<div class="flex-shrink-1 demoe">Flex item: flex-shrink-1</div>
</div>
.mr-auto
..ml-auto
.
<div class="d-flex democ mb-3">
<div class="demoe">Flex item-1</div>
<div class="demoe">Flex item-2</div>
<div class="demoe">Flex item-3</div>
</div>
<div class="d-flex democ mb-3">
<div class="mr-auto demoe">Flex item-1: mr-auto</div>
<div class="demoe">Flex item-2</div>
<div class="demoe">Flex item-3</div>
</div>
<div class="d-flex democ mb-3">
<div class="demoe">Flex item-1</div>
<div class="demoe">Flex item-2</div>
<div class="ml-auto demoe">Flex item-3: ml-auto</div>
</div>
align-items, flex-direction:column e margin-top:auto o margin-bottom:auto
.
<div class="d-flex align-items-start flex-column democh mb-3">
<div class="mb-auto demoe">Flex item-1: mb-auto</div>
<div class="demoe">Flex item-2</div>
<div class="demoe">Flex item-3</div>
</div>
<div class="d-flex align-items-end flex-column democh mb-3">
<div class="demoe">Flex item-1</div>
<div class="demoe">Flex item-2</div>
<div class="mt-auto demoe">Flex item-3: mt-auto</div>
</div>
.flex-nowrap
..flex-wrapo
o invertendo l'allineamento: .flex-wrap-reverse
..flex-nowrap
- Gli elementi del contenitore sono allineati in una riga e NON vanno a capo.flex-wrap
- Gli elementi del contenitore vanno a capo e si allineano ordinatamente.flex-wrap-reverse
- Gli elementi del contenitore vanno a capo e si allineano in senso inverso
<h5><code>.flex-nowrap</code> - Gli elementi del contenitore sono allineati in una riga e NON vanno a capo</h5>
<div class="d-flex flex-nowrap democ mb-3">
<div class="demoe">Elemento flex-1</div>
<div class="demoe">Elemento flex-2</div>
<div class="demoe">Elemento flex-3</div>
<div class="demoe">Elemento flex-4</div>
<div class="demoe">Elemento flex-5</div>
<div class="demoe">Elemento flex-6</div>
<div class="demoe">Elemento flex-7</div>
<div class="demoe">Elemento flex-8</div>
<div class="demoe">Elemento flex-9</div>
</div>
<h5><code>.flex-wrap</code> - Gli elementi del contenitore vanno a capo e si allineano ordinatamente</h5>
<div class="d-flex flex-wrap democ mb-3">
<div class="demoe">Elemento flex-01</div>
<div class="demoe">Elemento flex-02</div>
<div class="demoe">Elemento flex-03</div>
<div class="demoe">Elemento flex-04</div>
<div class="demoe">Elemento flex-05</div>
<div class="demoe">Elemento flex-06</div>
<div class="demoe">Elemento flex-07</div>
<div class="demoe">Elemento flex-08</div>
<div class="demoe">Elemento flex-09</div>
<div class="demoe">Elemento flex-10</div>
<div class="demoe">Elemento flex-11</div>
<div class="demoe">Elemento flex-12</div>
<div class="demoe">Elemento flex-13</div>
<div class="demoe">Elemento flex-14</div>
<div class="demoe">Elemento flex-15</div>
<div class="demoe">Elemento flex-16</div>
<div class="demoe">Elemento flex-17</div>
<div class="demoe">Elemento flex-18</div>
<div class="demoe">Elemento flex-19</div>
<div class="demoe">Elemento flex-20</div>
<div class="demoe">Elemento flex-21</div>
<div class="demoe">Elemento flex-22</div>
<div class="demoe">Elemento flex-23</div>
</div>
<h5><code>.flex-wrap-reverse</code> - Gli elementi del contenitore vanno a capo e si allineano in senso inverso</h5>
<div class="d-flex flex-wrap-reverse democ mb-3">
<div class="demoe">Elemento flex-01</div>
<div class="demoe">Elemento flex-02</div>
<div class="demoe">Elemento flex-03</div>
<div class="demoe">Elemento flex-04</div>
<div class="demoe">Elemento flex-05</div>
<div class="demoe">Elemento flex-06</div>
<div class="demoe">Elemento flex-07</div>
<div class="demoe">Elemento flex-08</div>
<div class="demoe">Elemento flex-09</div>
<div class="demoe">Elemento flex-10</div>
<div class="demoe">Elemento flex-11</div>
<div class="demoe">Elemento flex-12</div>
<div class="demoe">Elemento flex-13</div>
<div class="demoe">Elemento flex-14</div>
<div class="demoe">Elemento flex-15</div>
<div class="demoe">Elemento flex-16</div>
<div class="demoe">Elemento flex-17</div>
<div class="demoe">Elemento flex-18</div>
<div class="demoe">Elemento flex-19</div>
<div class="demoe">Elemento flex-20</div>
<div class="demoe">Elemento flex-21</div>
<div class="demoe">Elemento flex-22</div>
<div class="demoe">Elemento flex-23</div>
</div>
.order-*
..order-1
a .order-12
<div class="d-flex flex-nowrap democ">
<div class="order-3 demoe">flex item-1</div>
<div class="order-2 demoe">flex item-2</div>
<div class="order-1 demoe">flex item-3</div>
<div class="order-4 demoe">flex item-4</div>
<div class="order-6 demoe">flex item-5</div>
<div class="order-5 demoe">flex item-6</div>
</div>
align-content
sul contenitore Flexbox per allineare gli elementi flex insieme sull'asse trasversale.start
(impostazione predefinita del browser), end, center, between, around, o stretch
.
<h5> .align-content-start</h5>
<div class="d-flex align-content-start flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>
<h5> .align-content-end</h5>
<div class="d-flex align-content-end flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>
<h5> .align-content-center</h5>
<div class="d-flex align-content-center flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>
<h5> .align-content-between</h5>
<div class="d-flex align-content-between flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>
<h5> .align-content-around</h5>
<div class="d-flex align-content-around flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>
<h5> .align-content-stretch</h5>
<div class="d-flex align-content-stretch flex-wrap democh">
<div class="demoe">Elem. flex-01</div>
<div class="demoe">Elem. flex-02</div>
<div class="demoe">Elem. flex-03</div>
<div class="demoe">Elem. flex-04</div>
<div class="demoe">Elem. flex-05</div>
<div class="demoe">Elem. flex-06</div>
<div class="demoe">Elem. flex-07</div>
<div class="demoe">Elem. flex-08</div>
<div class="demoe">Elem. flex-09</div>
<div class="demoe">Elem. flex-10</div>
<div class="demoe">Elem. flex-11</div>
<div class="demoe">Elem. flex-12</div>
<div class="demoe">Elem. flex-13</div>
<div class="demoe">Elem. flex-14</div>
<div class="demoe">Elem. flex-15</div>
<div class="demoe">Elem. flex-16</div>
<div class="demoe">Elem. flex-17</div>
<div class="demoe">Elem. flex-18</div>
<div class="demoe">Elem. flex-19</div>
<div class="demoe">Elem. flex-20</div>
<div class="demoe">Elem. flex-21</div>
</div>