Flexbox (sau Flexibil container) este un nou mod in CSS3 de amplasare elemente in pagina, destinate sa se ajusteze la diferite dimensiuni si dispozitive de afisare.
Acest model de amplasare flexibil nu foloseste 'float', si nici nu face continutul sa depaseasca marginile.
Flexbox ofera control pentru aliniere, directie, ordonare si marime la elementele din container.
- Acest tutorial prezinta exemple si proprietati css3 pentru containerul Flex.
Creare container flexbox
Flexbox consta din container flexibil si elemente interioare flexibile.
Pentru a crea un flex container, setati proprietatea display cu valoarea flex (redata ca block) sau inline-flex (redata ca liniara).
Fiecare element dintr-un flex container devine un flex-item. Si textul direct dintr-un container e considerat un flex-item.
Proprietatea flex-direction specifica directia elementelor din flex container. Pot fi aranjate orizontal in linie, sau vertical pe coloane.
- Valori pt. flex-direction:
row - (default) flex-items sunt aranjate in linie, de la stanga la dreapta (in context ltr).
row-reverse - flex-items sunt aranjate in linie, in sens invers, de la dreapta la stanga (in context ltr).
column - flex-items sunt aranjate pe coloane, de sus in jos.
column-reverse - flex-items sunt aranjate pe coloane, invers, de jos in sus.
In mod initial containerul flex pune toate elementele din el pe o singura linie.
Proprietatea flex-wrap seteaza posibilitatea de a afisa elementele pe mai multe linii (daca pe o linie depasesc lungimea containerului), si directia lor.
- Valori pt. flex-wrap:
nowrap - (default) toate elementele din container flex sunt pe o singura linie.
wrap - flex-items vor fi aranjate pe mai multe linii de sus in jos.
wrap-reverse - flex-items vor fi aranjate pe mai multe linii, invers, de jos in sus.
.container {
display: flex;
flex-wrap: wrap;
}
flex-flow
flex-wrap seteaza intr-o singura proprietate valorile pentru flex-direction si flex-wrap. Default: row nowrap
- Sintaxa flex-flow:
justify-content seteaza aranjarea pe orizontala a elementelor din flex container cand acestea nu ocupa tot spatiul din el. Distribue spatiul ramas liber.
- Valori pt. justify-content:
flex-start - (default) elementele sunt pozitionate la inceputul containerului.
flex-end - elementele sunt pozitionate la sfarsitul containerului.
center - elementele sunt pozitionate in centrul containerului.
space-between - elementele sunt pozitionate cu spatiu egal intre ele, primul si ultimul flex-item sunt la marginile containerului.
space-around - elementele sunt pozitionate cu spatiu egal in jurul lor, inclusiv primul si ultimul flex-item.
space-evenly - elementele sunt pozitionate cu spatiu egal intre ele si margini.
align-items seteaza aranjarea pe verticala a elementelor din flex container cand acestea nu ocupa tot spatiul din el. Este similar cu justify-content, dar pe axa verticala.
- Valori pt. align-items:
align-content aliniaza liniile din flex container cand e spatiu ramas liber pe verticala. Similar cum justify-content aliniaza elementele individual pe orizontala.
Aceasta proprietate nu are efect cand elementele sunt pe o singura linie.
- Valori pt. align-content:
stretch - (default) Liniile se intind pentru a prelua spatiul ramas.
flex-start - Liniile sunt aranjate la inceputul containerului.
flex-end - Liniile sunt aranjate la sfarsitul containerului.
center - Liniile sunt aranjate in centrul containerului.
space-between - Liniile sunt distribuite uniform; prima linie este la inceputul containerului, iar ultima este la sfarsit.
space-around - Liniile sunt distribuite uniform cu spatiu egal in jurul fiecarei linii.