Junior
Ce este Flexbox?
sobes.tech AI
Răspuns de la AI
Flexbox (Flexible Box Layout) este un modul CSS conceput pentru a crea layout-uri complexe și adaptabile. Permite gestionarea aranjamentului, aliniamentului și distribuției spațiului între elementele containerului, chiar dacă dimensiunile lor sunt necunoscute sau dinamice.
Conceptele principale ale Flexbox:
- Axa principală (main axis): Axa pe care sunt plasate elementele. Implicit, orizontală (de la stânga la dreapta).
- Axa transversală (cross axis): Axa perpendiculară pe axa principală. Implicit, verticală (de sus în jos).
- Container (flex container): Elementul pe care se aplică proprietățile Flexbox (
display: flexsaudisplay: inline-flex). - Elemente (flex items): Elementele copil ale containerului.
Proprietăți pentru containerul Flex:
display:flexsauinline-flexflex-direction: Determină direcția axei principale (row, row-reverse, column, column-reverse)flex-wrap: Determină dacă elementele se vor înfășura pe o linie nouă (nowrap, wrap, wrap-reverse)justify-content: Alinierea elementelor de-a lungul axei principale (flex-start, flex-end, center, space-between, space-around, space-evenly)align-items: Alinierea elementelor de-a lungul axei transversale (flex-start, flex-end, center, baseline, stretch)align-content: Alinierea liniilor sau coloanelor de-a lungul axei transversale într-un container cu mai multe linii (flex-start, flex-end, center, space-between, space-around, stretch)
Proprietăți pentru elementele Flex:
order: Determină ordinea elementului în containerflex-grow: Determină cât trebuie să crească elementul pentru a ocupa spațiul disponibilflex-shrink: Determină cât trebuie să se micșoreze elementul dacă spațiul este insuficientflex-basis: Determină dimensiunea inițială a elementului înainte de distribuirea spațiuluiflex: Proprietate abreviată pentruflex-grow,flex-shrinkșiflex-basisalign-self: Suprascrie alinierea elementului de-a lungul axei transversale (flex-start, flex-end, center, baseline, stretch, auto)
Exemplu de utilizare:
/* Container */
.container {
display: flex; /* Activează Flexbox */
flex-direction: row; /* În linie */
justify-content: center; /* Centrare orizontală */
align-items: center; /* Centrare verticală */
height: 200px; /* Înălțimea containerului */
border: 1px solid black;
}
/* Elemente */
.item {
width: 50px;
height: 50px;
background-color: lightblue;
margin: 5px;
}
Flexbox simplifică foarte mult crearea layout-urilor responsive comparativ cu metodele tradiționale (float, inline-block, table).