Flexbox - exempel
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:
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:
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:
Sen behöver vi lite CSS också:
Här kan du se hur en något expanderad version av exemplet blir att se ut.
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:
CSS:en för att få till det hela blir att se ut så här:
Här kan du se hur en något förbättrad version av exemplet blir att se ut.
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.
Övningar
Gå gärna till Flexbox Froggy och gå igenom övningarna där!