Flexbox - exempel

Från Webbling
Hoppa till: navigering, sök

Nu ska vi titta på hur man kan använda sig av flexbox för att skapa olika typer av layout.

Centrering

Att centrera saker har i många fall varit problematiskt i CSS. Med flexbox är det mycket lätt att centrera saker. Låt säga att vi vill centrera en text i en box. Vi vill centrera både horisontellt och vertikalt. Vår HTML ser ut så här:

See the Pen pJXebe by Patrik Grip-Jansson (@PGJ) on CodePen.

Vi behöver först slå igång flexbox för div-elementet, vilket man gör med display: flex;. Sen måste vi sätta såväl align-items och justify-content till center. Vår CSS blir att se ut som följer:

See the Pen pJXebe by Patrik Grip-Jansson (@PGJ) on CodePen.

Här kan du se hur exemplet blir att se ut.

See the Pen pJXebe by Patrik Grip-Jansson (@PGJ) on CodePen.

Ville vi bara justera i en ledd, kunde vi utelämnat motsvarande centreringsegenskap.

Layout i kolumner

Som du kanske sett så bygger de flesta webbsajter på en layout där man har flera kolumner. Historiskt sett har det varit svårt att få till en bra kolumnlayout med HTML/CSS. Främst är det svårt att få till kolumner som har samma höjd. Med flexbox blir det dock lätt att få till en dylik layout.

Vi provar att göra en layout med tre kolumner. På höger och vänster sida sätter vi smala kolumner och i mitten har vi en bredare layout. För de smala kolumnerna använder vi oss av aside, som är HTML-kommandot för saker som marginellt hör till innehållet och som inte är central och superviktigt (ofta har man saker som reklam och navigation i dessa kolumner). Mittenkolumnen sätter vi med main eftersom det ska vara huvudinnehållet.

Så här skulle koden kunna att bli och se ut, vi börjar med HTML:

See the Pen eNwvdG by Patrik Grip-Jansson (@PGJ) on CodePen.

Sen behöver vi lite CSS också:

See the Pen eNwvdG by Patrik Grip-Jansson (@PGJ) on CodePen.

Här kan du se hur en något expanderad version av exemplet blir att se ut.

See the Pen eNwvdG by Patrik Grip-Jansson (@PGJ) on CodePen.

Den här layouten kommer att anpassas i storlek om du ändrar på webbläsarfönstret storlek.

Kolumner samt sid-huvud och -fot

Förutom en kolumnlayout har de flesta webbsajter även ett sidhuvud och en sidfot. Det finns lite olika sätt på vilket vi kan lösa detta. Ett enkelt sätt är att kombinera två flexboxar, en kolumn- och en rad-box. Så här kan HTML-koden se ut:

See the Pen pJXeRP by Patrik Grip-Jansson (@PGJ) on CodePen.

CSS:en för att få till det hela blir att se ut så här:

See the Pen pJXeRP by Patrik Grip-Jansson (@PGJ) on CodePen.

Här kan du se hur en något förbättrad version av exemplet blir att se ut.

See the Pen pJXeRP by Patrik Grip-Jansson (@PGJ) on CodePen.

Här har vi fått en robust layout, som anpassar sig till olika skärmstorlekar. Allt detta utan att vi ansträngt oss speciellt mycket. Att få till detta, så att det funkat lika bra, med hjälp av "gamla" metoder skulle varit mycket mer jobbigt och hackigt.

Nästa aktivitet

Typografi - grunder