Flex
Lösningen på allt... nästan.
Flexbox
Display flex är ett layoutsystem för webben som använder kolumner och rader för att strukturera innehåll. Du använder det genom att sätta display egenskapen på ett element med CSS.
Flex löser flera problem med positionering och det låter oss mycket enklare skapa komplexa layouter som samtidigt är mobilanpassade. Ett bra första exempel är att placera element bredvid varandra.
Studera och kopiera följande kod. Det är två sektioner med rubriker och brödtext. Hur går du till väga för att placera sektionerna bredvid varandra som spalter. Innan flex så joxade många med floats för att lösa det, men det fungerade sällan bra.
Med flex räcker det att sätta det överliggande elementet till flex.
Vi kan sedan ge varje section lite horisontell white-space för att öka sidans läsbarhet.
Riktning
Sidan kommer nu att flexa i riktningen(eng. direction) rader(row) då det är standard-inställningen för flex. Vi kan styra detta med flex-direction egenskapen. Genom att sätta flex-direction till column så placeras inte längre sektionerna bredvid varandra. Detta kan vara användbart om vi önskar ändra layouten med till exempel media regler, men det låter oss även ändra ordningen med reverse värden.
Orientering
Flex är det universella svaret på frågan, "hur centrerar jag elementet". Flex med justify-content: center och align-items:center.
En av de stora styrkorna med flex är att vi kan styra över elementens orientering (engelska alignment). Med flex blir det väldigt mycket enklare att centrera och flytta element. Studera och kopiera följande kod för en navbar.
Utan CSS och flex så är resultatet en länk följd av tre list-items. De är vertikalt placerade tillsammans eftersom det är block element. En vanlig lösning på detta är att sätta li elementen till display: inline, för att slippa radbrytningen. Vi kan istället göra detta med flex och på så vis få mycket större kontroll.
För att sedan placera detta bredvid Logotyplänken så kan vi åter igen använda flex och ändra orienteringen.
Navbaren bör nu vara separerad så att logon är till vänster och text-listan till höger. Prova gärna att ändra justify-content till andra värden. För vertikal justering så kan du prova align-items: värde. Vi ska försöka att få till centreringen med en logotyp.
Som logotyp kan du använda en valfri bild, exemplet kommer använda hem ikonen från Google icons med måtten 48x48. Ikonen är sparad som SVG.
Media regler
Läs mer om media regler i kapitlet om responsiv design.
Som sista del så ska vi mobilanpassa den layout vi skapat. För att göra det så vill vi inte visa spalter på mindre skärmar och navbar-menyn ska vara vertikal.
Med en media regel för max-bredd så kan vi styra elementen att visas på ett annat sätt på en mindre skärm.
Last updated
Was this helpful?