Kako koristiti flexbox za raspored elemenata na stranici?
sobes.tech АИ
Одговор од АИ
Flexbox (ili Flexible Box Layout) — to je CSS modul namenjen za ustvarjanje prilagodljivih postavitev elementov v vsebniku, omogočajoč enostavno razporejanje prostora in poravnavo elementov, tudi kadar so njihovi dimenziji neznani ali se dinamično spreminjajo.
Glavna koncept Flexbox je flex-vsebnik in njegovi flex- elementi.
Lastnosti za Flex-vsebnik (display: flex;):
-
flex-direction: Določa smer razporeditve flex- elementov v vsebniku (glavna os).row(privzeto): horizontalno, od leve proti desni.row-reverse: horizontalno, od desne proti levi.column: vertikalno, od zgoraj navzdol.column-reverse: vertikalno, od spodaj navzgor.
-
flex-wrap: Določa, ali se flex- elementi prelivajo v novo vrstico, če se ne prilegajo v eno.nowrap(privzeto): vsi elementi v eni vrstici.wrap: prelivajo se v novo vrstico.wrap-reverse: prelivajo se v novo vrstico, vendar v obratnem vrstnem redu.
-
justify-content: Poravnava flex- elementov vzdolž glavne osi.flex-start(privzeto): na začetku glavne osi.flex-end: na koncu glavne osi.center: na sredini glavne osi.space-between: enakomerno razporejeno z razmikom med elementi.space-around: enakomerno razporejeno z razmikom okoli elementov.space-evenly: enakomerno razporejeno z enakimi razmiki med in okoli elementov.
-
align-items: Poravnava flex- elementov vzdolž prečne osi.stretch(privzeto, če ni določena višina/širina): raztegne elemente po višini/širini prečne osi.flex-start: na začetku prečne osi.flex-end: na koncu prečne osi.center: na sredini prečne osi.baseline: po osnovni črti besedila.
-
align-content: Poravnava vrstic flex- elementov vzdolž prečne osi, ko pride do prelivanja vrstic (flex-wrap: wrap). Podobno kotjustify-content, vendar za prečno os.stretch(privzeto): raztegne vrstice.flex-start: na začetku prečne osi.flex-end: na koncu prečne osi.center: na sredini prečne osi.space-between: enakomerno razporejene vrstice z razmiki med njimi.space-around: enakomerno razporejene vrstice z razmiki okoli njih.
-
gap,row-gap,column-gap: določajo razmike med flex- elementi.
.flex-container {
display: flex; /* Ustvari flex-vsebnik */
flex-direction: row; /* Elementi so razporejeni horizontalno */
flex-wrap: wrap; /* Elementi se prelivajo v novo vrstico */
justify-content: center; /* Elementi so poravnani na sredino glavne osi */
align-items: center; /* Elementi so poravnani na sredino prečne osi */
gap: 10px; /* Razmik 10px med flex- elementi */
}
Lastnosti za Flex- elemente (direktni potomci flex-vsebnik):
-
order: Določa vrstni red prikaza flex- elementa (privzeto0). Manjše vrednosti se prikažejo prej. -
flex-grow: Določa koeficient za raztezanje elementa glede na druge, da zavzame razpoložljiv prostor. Privzeto0. -
flex-shrink: Določa koeficient za krčenje, če je prostora premalo. Privzeto1. -
flex-basis: Določa osnovno velikost elementa pred razporejanjem prostega prostora. Lahko je v px, %, rem, auto itd. (privzetoauto). -
flex: Skrčena lastnost zaflex-grow,flex-shrink,flex-basis(npr.flex: 1 1 0;). -
align-self: Prekoračuje poravnavo elementa vzdolž prečne osi, določeno zalign-itemsna vsebniku. Sprejema iste vrednosti.
.flex-item {
order: 2; /* Ta element bo prikazan kot drugi, ne glede na njegovo pozicijo v HTML */
flex-grow: 1; /* Ta element bo zavzel preostali prostor */
flex-shrink: 0; /* Ta element se ne bo krčil */
flex-basis: 100px; /* Osnovna velikost 100px */
align-self: flex-start; /* Poravnava tega elementa na začetek prečne osi */
}
.another-item {
flex: 1 1 auto; /* Skrčena oblika: rast: 1, krčenje: 1, osnova: auto */
}
Flexbox omogoča ustvarjanje različnih postavitev, od preprostega poravnavanja do bolj zapletenih odzivnih struktur, upravljajoč razporeditev prostora in poravnavo elementov znotraj vsebnika.