Kaip naudoti flexbox elementų išdėstymui puslapyje?
sobes.tech AI
Atsakymas iš AI
Flexbox (arba Lankstus dėžių išdėstymas) – tai CSS modulis, skirtas kurti lankstesnius elementų maketus konteineryje, leidžiant lengvai paskirstyti erdvę ir išlyginti elementus, net jei jų dydžiai yra nežinomi arba dinamiškai keičiasi.
Pagrindinė Flexbox koncepcija – tai flex konteineris ir jo flex elementai.
Savybės flex konteineriui (display: flex;):
-
flex-direction: Nustato flex elementų išdėstymo kryptį (pagrindinė ašis).row(numatyta): horizontaliai iš kairės į dešinę.row-reverse: horizontaliai iš dešinės į kairę.column: vertikaliai iš viršaus į apačią.column-reverse: vertikaliai iš apačios į viršų.
-
flex-wrap: Nustato, ar flex elementai perkelti į naują eilutę, jei jų nepakanka vienai eilutei.nowrap(numatyta): visi elementai vienoje eilutėje.wrap: perkelti į naują eilutę.wrap-reverse: perkelti į naują eilutę, bet atvirkščia tvarka.
-
justify-content: Išlygina flex elementus pagal pagrindinę ašį.flex-start(numatyta): išlyginimas pradžioje.flex-end: išlyginimas pabaigoje.center: išlyginimas centre.space-between: tolygus paskirstymas su tarpeliais tarp elementų.space-around: tolygus paskirstymas su tarpeliais aplink elementus.space-evenly: tolygus paskirstymas su vienodais tarpeliais tarp ir aplink elementus.
-
align-items: Išlygina flex elementus vertikalioje (perpinduliu) ašyje.stretch(numatyta, jei nėra nustatyta aukščio/plotis): ištempia elementus.flex-start: išlyginimas pradžioje.flex-end: išlyginimas pabaigoje.center: išlyginimas centre.baseline: išlyginimas pagal teksto bazinę liniją.
-
align-content: Išlygina eilutes flex elementų vertikalioje ašyje, kai yra perėjimai į naujas eilutes (flex-wrap: wrap). Veikia panašiai kaipjustify-content, bet vertikalioje ašyje.stretch(numatyta): ištempia eilutes.flex-start: eilutės išlyginamos pradžioje.flex-end: eilutės išlyginamos pabaigoje.center: eilutės išlyginamos centre.space-between: tolygus paskirstymas tarp eilutžių.space-around: tolygus paskirstymas aplink eilutes.
-
gap,row-gap,column-gap: nustato tarpus tarp flex elementų.
.flex-container {
display: flex; /* Nustato elementą kaip flex konteinerį */
flex-direction: row; /* Elementai išdėstomi horizontaliai */
flex-wrap: wrap; /* Elementai perkelti į naują eilutę */
justify-content: center; /* Elementai išlyginami centre pagal pagrindinę ašį */
align-items: center; /* Elementai išlyginami centre vertikalioje ašyje */
gap: 10px; /* 10px tarpas tarp elementų */
}
Savybės flex elementams (tiesioginiai flex konteinerio palikuonys):
-
order: Nustato elementų išdėstymo tvarką (numatyta0). Mažesnės reikšmės elementai rodomi anksčiau. -
flex-grow: Nustato koeficientą, kuris nurodo, kiek elementas gali išsitempti, palyginti su kitais. -
flex-shrink: Nustato koeficientą, kuris nurodo, kiek elementas gali susitraukti. -
flex-basis: Nustato pradinį elementų dydį prieš paskirstant laisvą erdvę. -
flex: Sutrumpinta savybė, apimantiflex-grow,flex-shrinkirflex-basis. -
align-self: Pakeičia išlyginimą pagal perpinduliu ašį tik tam tikram elementui.
.flex-item {
order: 2; /* Šis elementas bus rodomas antras */
flex-grow: 1; /* Užims likusią erdvę */
flex-shrink: 0; /* Nesusitrauks */
flex-basis: 100px; /* Pradinis dydis 100px */
align-self: flex-start; /* Išlyginimas pradžioje vertikalioje ašyje */
}
.another-item {
flex: 1 1 auto; /* Sutrumpinta reikšmė */
}
Flexbox leidžia kurti įvairius maketus, nuo paprastų išlyginimų iki sudėtingesnių adaptacinių struktūrų, valdant erdvės paskirstymą ir elementų išlyginimą konteineryje.