⇧
vadnica-logo
Editor Moj Blog Geselnik Finance Moje storitve O projektu Telegram O meni O meni

CSS Postavitev (Flexbox in Grid)

CSS Layout (postavitev) je temelj vsake spletne strani. V preteklosti smo za postavitev uporabljali tabele ali float, danes pa imamo na voljo dve močni in sodobni tehnologiji: Flexbox in Grid.

Flexbox (Flexible Box Layout) je idealen za eno-dimenzionalne postavitve – bodisi v vrstici (vodoravno) ali v stolpcu (navpično). Omogoča enostavno poravnavo elementov, razporeditev prostora med njimi in prilagajanje velikosti. Perfekten za navigacijske vrstice, kartice, gumbne vrstice in manjše komponente.

Grid (CSS Grid Layout) pa je močnejši orodje za dve-dimenzionalne postavitve – hkrati upravlja vrstice in stolpce. Omogoča ustvarjanje kompleksnih, celovitih struktur strani (header, sidebar, main, footer) z natančnim nadzorom nad vsakim delom mreže. Grid je odličen za celotno strukturo spletne strani.

V tej vadnici bomo pokrili obe tehnologiji, njihove lastnosti in kako jih uporabiti v praksi. Na koncu boste sposobni ustvariti poljubno postavitev, ki je odzivna in prilagodljiva vsem napravam.

PRIMER
REZULTAT
Lastnost Primer Opis
Flexbox: Vsebnik (Container)
display: flex;display: flex; Aktivira Flexbox za vsebnik
flex-directionflex-direction: row; Smer razporeditve (row, row-reverse, column, column-reverse)
justify-contentjustify-content: center; Poravnava vzdolž glavne osi (levo, desno, sredina, razporeditev)
align-itemsalign-items: center; Poravnava vzdolž prečne osi (zgoraj, spodaj, sredina, raztegnjeno)
flex-wrapflex-wrap: wrap; Ali naj se elementi prelomijo v novo vrstico (nowrap, wrap, wrap-reverse)
gapgap: 20px; Razmik med elementi
Flexbox: Posamezni Elementi
flexflex: 1; Kratka sintaksa za grow, shrink, basis
flex-growflex-grow: 1; Koliko naj se element raztegne glede na preostanek prostora
flex-shrinkflex-shrink: 1; Koliko naj se element skrči, če je prostora premalo
align-selfalign-self: flex-end; Prekrije align-items za posamezen element
Grid: Vsebnik (Container)
display: grid;display: grid; Aktivira Grid za vsebnik
grid-template-columnsgrid-template-columns: 1fr 1fr 1fr; Določi število in velikost stolpcev (1fr = en del)
grid-template-rowsgrid-template-rows: 100px auto; Določi število in velikost vrstic
grid-template-areasgrid-template-areas: "header header" "sidebar main"; Imenovanje območij za lažjo postavitev
gapgap: 20px; Razmik med vrsticami in stolpci
justify-itemsjustify-items: center; Poravnava vsebine znotraj celic (vse celice)
align-itemsalign-items: stretch; Poravnava vsebine znotraj celic (vse celice)
justify-contentjustify-content: space-around; Poravnava celotne mreže znotraj vsebnika
Grid: Posamezni Elementi
grid-columngrid-column: 1 / 3; Postavi element od stolpca 1 do 3
grid-rowgrid-row: 1 / span 2; Postavi element od vrstice 1, raztegni čez 2 vrstici
grid-areagrid-area: header; Postavi element v imenovano območje
justify-selfjustify-self: end; Prekrije justify-items za posamezen element