PresentationerSlide 1/1

Modul 4 · Kapitel 4.1

Flexbox för rader, menyer och kort

Placera element längs en huvudaxel: i rad eller kolumn.

Mål

Efter kapitlet ska du kunna...

  • förklara när flexbox passar
  • använda display: flex, gap och flex-wrap
  • förstå huvudaxeln och tväraxeln
  • bygga en meny eller kortlista

När passar flexbox?

En grupp längs en riktning

  • Länkar i en meny
  • Knappar i en verktygsrad
  • Kort i en lista
  • Element i en kolumn

Börja med frågan: ska elementen ligga i rad eller kolumn?

Starta flexbox

display: flex

.menu {
  display: flex;
  gap: 1rem;
}

Container och items

Föräldern styr barnen

<nav class="menu">
  <a href="index.html">Start</a>
  <a href="kontakt.html">Kontakt</a>
</nav>
  • nav.menu är flex-container.
  • Länkarna blir flex-items.

gap

Ändra avståndet mellan items

.menu {
  display: flex;
  gap: 1rem;
}
gap: 1rem;
123

gap skapar mellanrum utan separata marginaler.

flex-direction

Rad eller kolumn

rowcolumn
Huvudaxeln går horisontellt.Huvudaxeln går vertikalt.
Items ligger sida vid sida.Items ligger under varandra.

Interaktiv flex-direction

Bestäm huvudaxeln

flex-direction: row;

Byt riktning och se hur huvudaxeln ändras.

123

justify-content

Placering längs huvudaxeln

.cards {
  display: flex;
  justify-content: space-between;
}
123

Interaktiv justify-content

Flytta längs huvudaxeln

justify-content: flex-start;
123

align-items

Placering längs tväraxeln

.cards {
  display: flex;
  align-items: stretch;
}

stretch är standard och kan göra items lika höga längs tväraxeln.

Interaktiv align-items

Flytta längs tväraxeln

align-items: stretch;
123

flex-wrap

Bryt till en ny rad

.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
Kort 1Kort 2Kort 3Kort 4

flex-förkortning

Tre värden i en regel

.card {
  flex: 1 1 16rem;
}
grow
tar ledigt utrymme
shrink
tillåter krympning
basis
anger startstorlek
flex: 1 1 8rem;
123

Interaktiv flexbox

Ändra alla viktiga värden

1
2
3
4
5
6
7
8

Meny

Ett vanligt användningsområde

.menu {
  display: flex;
  gap: 1rem;
  align-items: center;
}

Länkarna ligger i rad och får jämnt avstånd.

Kortlista

Flexibel och radbrytande

.cards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.card { flex: 1 1 16rem; }

Kontrollfråga

Vilken axel styr justify-content?

Huvudaxeln eller tväraxeln?

Svar: huvudaxeln. Dess riktning bestäms av flex-direction.

Prova själv

Bygg två flexlayouter

  1. Skapa en meny med fyra länkar.
  2. Gör menyn till flex-container.
  3. Lägg till gap och testa justify-content.
  4. Skapa tre kort.
  5. Tillåt ny rad med flex-wrap.

Sammanfattning

Kom ihåg

  • display: flex gör barnen till flex-items.
  • Flex-direction bestämmer huvudaxeln.
  • Justify-content arbetar längs huvudaxeln.
  • Align-items arbetar längs tväraxeln.
  • Gap skapar avstånd och wrap tillåter nya rader.