Flexbox - styra layoutflödet längs flexaxeln: Skillnad mellan sidversioner

Från Webbling
Hoppa till: navigering, sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
 
(15 mellanliggande sidversioner av samma användare visas inte)
Rad 2: Rad 2:


== <code>justify-content</code> ==
== <code>justify-content</code> ==
<div class="well">
 
Med denna egenskap kan man sätta hur de olika flexelementen ska justeras/fördelas längs med flexaxeln.
Med denna egenskap kan man sätta hur de olika flexelementen ska justeras/fördelas längs med flexaxeln.


Följande värden kan anges:
Följande värden kan anges:
=== <code>flex-start</code> ===
=== <code>flex-start</code> ===
<div class="well">
[[Fil:FlexboxJustifyStart.png]]
[[Fil:FlexboxJustifyStart.png]]


Defaultvärdet. Allt flexmaterial samlas mot starten av flexboxen. Om vi har "normal" <code>[[ltr]]</code> och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot vänsterkanten.
Defaultvärdet. Allt flexmaterial samlas mot starten av flexboxen. Om vi har "normal" <code>[[ltr]]</code> och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot vänsterkanten.
<codepen pen="LVKxLz" height="200" tab="result">
<codepen pen="LVKxLz" height="300" tab="css,result">
</codepen>
</codepen>
</div>
 
=== <code>flex-end</code> ===
=== <code>flex-end</code> ===
<div class="well">
 
[[Fil:FlexboxJustifiedEnd.png]]
[[Fil:FlexboxJustifiedEnd.png]]


Allt flexmaterial samlas i slutet av flexboxen. Om vi har "normal" [[<code>rtl</code>]]/[[<code>ltr</code>]] och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot högerkanten.
Allt flexmaterial samlas i slutet av flexboxen. Om vi har "normal" <code>[[rtl]]</code>/<code>[[ltr]]</code> och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot högerkanten.
<codepen pen="KpjavK" height="200" tab="result">
<codepen pen="KpjavK" height="300" tab="css,result">
</codepen>
</codepen>
</div>
 
=== <code>center</code> ===
=== <code>center</code> ===
<div class="well">
[[Fil:FlexboxJustifyCenter.png]]
[[Fil:FlexboxJustifyCenter.png]]


Allt flexmaterial centreras mot mitten av flexboxen. Kombinerar vi detta med <code>align-items: center;</code> kan vi enkelt centerjustera innehåll såväl horisontellt, som vertikalt.
Allt flexmaterial centreras mot mitten av flexboxen. Kombinerar vi detta med <code>align-items: center;</code> kan vi enkelt centerjustera innehåll såväl horisontellt, som vertikalt. Vilket vi gör i följande exempel.
<codepen pen="eNqVNr" height="200" tab="result">
<codepen pen="eNqVNr" height="300" tab="css,result">
</codepen>
</codepen>
</div>
 
=== <code>space-between</code> ===
=== <code>space-between</code> ===
<div class="well">
 
[[Fil:FlexboxJustifySpaceBetween.png]]
[[Fil:FlexboxJustifySpaceBetween.png]]


Flexelementen distribueras jämt, längs med flexboxen.
Flexelementen distribueras jämt, längs med flexboxen. Tomrummet i flexbehållaren fördelas lika mellan flexelement och sätts som marginaler mellan dessa. De yttersta elementen i flexaxelns båda ändar får inga marginaler mot ändarna, utan de kommer att placeras i kant med slutpunkterna.
<codepen pen="waLgqO" height="200" tab="result">
 
<codepen pen="waLgqO" height="300" tab="css,result">
</codepen>
</codepen>
</div>
 
=== <code>space-around</code> ===
=== <code>space-around</code> ===
<div class="well">
[[Fil:FlexboxJustifySpaceAround.png]]
[[Fil:FlexboxJustifySpaceAround.png]]


Flexelementen distribueras jämt, längs med flexboxen och med lika mycket mellanrum mellan varje element.
Flexelementen distribueras jämt, längs med flexboxen och med lika mycket mellanrum mellan varje element. Tomrummet i flexbehållaren fördelas lika mellan flexelement och sätts som marginaler mellan dessa. De yttersta elementen i flexaxelns båda ändar får halva marginalstorleken jämtemot ändarna. Det vill säga om man lägger samman ändmarginalerna, så blir de tillsammans lika breda som övriga mellanmarginaler i flexbehållaren.
<codepen pen="doBNZd" height="200" tab="result">
 
<codepen pen="doBNZd" height="300" tab="css,result">
</codepen>
 
== Övningar ==
Välj "Edit on CodePen" för att göra övningarna där.
 
=== Övning 1 ===
Flytta alla flexelement så de ligger jämt fördelade mot på raden. De ska börja ifrån kanten på flexlådan.
<codepen pen="dZbeeo" height="300" tab="result">
</codepen>
 
=== Övning 2 ===
Alla boxar ska centreras horisontellt. Första boxen ska ligga längst upp, tvåan i mitten, trean längst ned och fyran i mitten.
<codepen pen="wPwjxr" height="300" tab="result">
</codepen>
</codepen>
</div>
 
</div>
== Nästa aktivitet ==
== Nästa aktivitet ==
[[Flexbox - flexbehållare med flera rader]]
[[Flexbox - flexbehållare med flera rader]]
[[Category:Webbutveckling]]

Nuvarande version från 8 september 2022 kl. 09.02

Vi vill självklart kunna styra hur layouten sker i förhållande till flexaxeln också. Det görs med egenskapen justify-content

justify-content

Med denna egenskap kan man sätta hur de olika flexelementen ska justeras/fördelas längs med flexaxeln.

Följande värden kan anges:

flex-start

FlexboxJustifyStart.png

Defaultvärdet. Allt flexmaterial samlas mot starten av flexboxen. Om vi har "normal" ltr och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot vänsterkanten.

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

flex-end

FlexboxJustifiedEnd.png

Allt flexmaterial samlas i slutet av flexboxen. Om vi har "normal" rtl/ltr och det är en radbaserad flexbehållare, kommer allt innehåll att samlas mot högerkanten.

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

center

FlexboxJustifyCenter.png

Allt flexmaterial centreras mot mitten av flexboxen. Kombinerar vi detta med align-items: center; kan vi enkelt centerjustera innehåll såväl horisontellt, som vertikalt. Vilket vi gör i följande exempel.

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

space-between

FlexboxJustifySpaceBetween.png

Flexelementen distribueras jämt, längs med flexboxen. Tomrummet i flexbehållaren fördelas lika mellan flexelement och sätts som marginaler mellan dessa. De yttersta elementen i flexaxelns båda ändar får inga marginaler mot ändarna, utan de kommer att placeras i kant med slutpunkterna.


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

space-around

FlexboxJustifySpaceAround.png

Flexelementen distribueras jämt, längs med flexboxen och med lika mycket mellanrum mellan varje element. Tomrummet i flexbehållaren fördelas lika mellan flexelement och sätts som marginaler mellan dessa. De yttersta elementen i flexaxelns båda ändar får halva marginalstorleken jämtemot ändarna. Det vill säga om man lägger samman ändmarginalerna, så blir de tillsammans lika breda som övriga mellanmarginaler i flexbehållaren.


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

Övningar

Välj "Edit on CodePen" för att göra övningarna där.

Övning 1

Flytta alla flexelement så de ligger jämt fördelade mot på raden. De ska börja ifrån kanten på flexlådan.

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

Övning 2

Alla boxar ska centreras horisontellt. Första boxen ska ligga längst upp, tvåan i mitten, trean längst ned och fyran i mitten.

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

Nästa aktivitet

Flexbox - flexbehållare med flera rader