Tailwind CSS Academy · Lektion

Gridrader och automatisk placering

Definiera explicita rader med grid-rows-*, styr automatisk placering med grid-flow-* och låt webbläsaren placera elementen på ett intelligent sätt.

Lektion 3 av 413 steg

Gridrader och automatisk placering är en gratis lektion i Tailwind CSS Academy på CoddyKit. Detta är lektion 3 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Tailwind CSS Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Tailwind CSS Academy innehåller totalt 4 lektioner.

Explicita och implicita rader i rutnätet

När du placerar element i ett rutnät skapar CSS Grid rader på två sätt: explicit (du definierar dem med grid-rows-*) eller implicit (webbläsaren skapar dem automatiskt när elementen inte får plats). Genom att förstå skillnaden kan du styra höjder exakt när det behövs eller låta webbläsaren hantera dem när innehållet varierar.

<!-- Explicit 3-row grid -->
<div class="grid grid-rows-3 grid-cols-2 gap-4 h-48">
  <div class="bg-blue-100 p-3">Row 1, Col 1</div>
  <div class="bg-blue-100 p-3">Row 1, Col 2</div>
  <div class="bg-blue-200 p-3">Row 2, Col 1</div>
  <div class="bg-blue-200 p-3">Row 2, Col 2</div>
  <div class="bg-blue-300 p-3">Row 3, Col 1</div>
  <div class="bg-blue-300 p-3">Row 3, Col 2</div>
</div>

Verktygen grid-rows-N

Tailwind tillhandahåller grid-rows-1 till och med grid-rows-6 för att definiera explicita radspår. Internt kompileras grid-rows-3 till grid-template-rows: repeat(3, minmax(0, 1fr)). Dessa rader delar lika på containerns tillgängliga höjd. Det är mest användbart när containern har en fast höjd eller en höjd angiven i procent.

<!-- 4 equal rows in a fixed-height dashboard -->
<div class="grid grid-rows-4 gap-2 h-64">
  <div class="bg-emerald-100 p-2 rounded">Section 1</div>
  <div class="bg-emerald-200 p-2 rounded">Section 2</div>
  <div class="bg-emerald-300 p-2 rounded">Section 3</div>
  <div class="bg-emerald-400 p-2 rounded">Section 4</div>
</div>

Implicita rader och grid-auto-rows

När det finns fler element än de explicita raderna rymmer skapar webbläsaren implicita rader. Som standard får dessa implicita rader en höjd som anpassas efter innehållet. Du kan styra höjden med anpassad CSS eller Tailwinds syntax för godtyckliga värden, till exempel genom att ange radhöjden med en inline style eller använda verktygen auto-rows-* som finns i nyare Tailwind-versioner.

<!-- Implicit rows kick in for items beyond grid-rows-2 -->
<div class="grid grid-cols-2 grid-rows-2 gap-3" style="grid-auto-rows: 80px">
  <div class="bg-purple-100 p-3">Explicit row 1</div>
  <div class="bg-purple-100 p-3">Explicit row 1</div>
  <div class="bg-purple-200 p-3">Explicit row 2</div>
  <div class="bg-purple-200 p-3">Explicit row 2</div>
  <!-- These create implicit rows at 80px height -->
  <div class="bg-purple-300 p-3">Implicit row</div>
  <div class="bg-purple-300 p-3">Implicit row</div>
</div>

Förstå grid-flow

Egenskapen grid-flow styr algoritmen för automatisk placering – alltså ordningen i vilken elementen fyller tillgängliga celler i rutnätet. Tailwinds grid-flow-row (standard) fyller varje rad från vänster till höger innan den går vidare nedåt. grid-flow-col fyller varje kolumn uppifrån och ned innan den går vidare åt höger. Skillnaden motsvarar ungefär att läsa en bok från vänster till höger jämfört med att läsa en tidning kolumn för kolumn.

<!-- Row flow (default): items fill horizontally -->
<div class="grid grid-cols-3 grid-flow-row gap-3">
  <div class="bg-sky-100 p-3">1</div>
  <div class="bg-sky-100 p-3">2</div>
  <div class="bg-sky-100 p-3">3</div>
  <div class="bg-sky-100 p-3">4</div>
</div>

grid-flow-col för kolumnprioriterad layout

När du använder grid-flow-col ändras algoritmen för automatisk placering så att kolumner fylls först. Tillsammans med grid-rows-*, som begränsar hur hög varje kolumn får bli, skapar detta ett vertikalt kortflöde i tidnings- eller Pinterest-stil. Elementen fyller den första kolumnen uppifrån och ned och fortsätter sedan automatiskt i nästa kolumn.

<!-- Column-first flow: items fill downward in each column -->
<div class="grid grid-rows-3 grid-flow-col gap-3">
  <div class="bg-rose-100 p-3">Col 1, Row 1</div>
  <div class="bg-rose-100 p-3">Col 1, Row 2</div>
  <div class="bg-rose-100 p-3">Col 1, Row 3</div>
  <div class="bg-rose-200 p-3">Col 2, Row 1</div>
  <div class="bg-rose-200 p-3">Col 2, Row 2</div>
  <div class="bg-rose-200 p-3">Col 2, Row 3</div>
</div>

Tät automatisk placering

grid-flow-dense aktiverar en algoritm för tät packning, som låter webbläsaren fylla igen luckor efter stora element som sträcker sig över flera spår. Utan tät packning lämnar ett rutnät med sådana element luckor eftersom placeringen följer en strikt ordning. Tät packning passar perfekt för bildgallerier där du vill ha en kompakt mosaik utan outnyttjat utrymme.

<!-- Dense packing fills holes left by spanning items -->
<div class="grid grid-cols-3 grid-flow-dense gap-3">
  <div class="col-span-2 bg-amber-200 p-3">Wide (spans 2)</div>
  <div class="bg-amber-100 p-3">B</div>
  <div class="bg-amber-100 p-3">C</div>
  <!-- D would normally go after C, but dense fills the hole before B -->
  <div class="bg-amber-100 p-3">D</div>
</div>

Tät rad- och kolumnplacering tillsammans

Du kan kombinera flödesriktning och täthet med grid-flow-row-dense eller grid-flow-col-dense. Varianten med row fyller rader först men fyller sedan igen eventuella luckor, medan varianten med col fyller kolumner först och fyller igen luckor. Det här är standardverktygen för galleriliknande layouter med kort i blandade storlekar, där utseendet är viktigare än en strikt ordning.

<!-- Row-dense: fills rows first, packs holes -->
<div class="grid grid-cols-4 grid-flow-row-dense gap-3">
  <div class="col-span-3 bg-teal-300 p-3">Spans 3</div>
  <div class="bg-teal-100 p-3">A</div>
  <div class="bg-teal-100 p-3">B</div>
  <div class="col-span-2 bg-teal-200 p-3">Spans 2</div>
  <div class="bg-teal-100 p-3">C</div>
</div>

Kombinera grid-rader med kolumner

Om du definierar både grid-rows-* och grid-cols-* tillsammans får du en fullständigt specificerad rutnätsmall, ungefär som i ett kalkylblad. Varje cell i mallen får en förutsägbar position. Detta fungerar utmärkt för instrumentpanelslayouter där du vet exakt hur många sektioner du behöver och vill ha exakt kontroll över deras höjder och bredder.

<!-- 3-col x 2-row dashboard shell -->
<div class="grid grid-cols-3 grid-rows-2 gap-4 h-64">
  <div class="col-span-3 bg-slate-700 text-white p-3 rounded">Header</div>
  <div class="bg-slate-100 p-3 rounded">Widget 1</div>
  <div class="bg-slate-100 p-3 rounded">Widget 2</div>
  <div class="bg-slate-100 p-3 rounded">Widget 3</div>
</div>

Anpassade radhöjder med godtyckliga värden

Tailwinds syntax för godtyckliga värden låter dig skriva valfritt CSS-värde inom hakparenteser. För rutnätsrader kan du använda grid-rows-[100px_1fr_auto] för att definiera ett fast sidhuvud på 100px, ett flexibelt innehållsområde och en automatiskt dimensionerad sidfot. Detta är mer koncist än att skriva inline-format och drar nytta av JIT-kompilering till din produktions-CSS.

<!-- Custom row heights: 60px header, flexible main, auto footer -->
<div class="grid h-screen" style="grid-template-rows: 60px 1fr auto">
  <header class="bg-gray-900 text-white flex items-center px-6">
    App Header
  </header>
  <main class="bg-gray-50 p-6 overflow-y-auto">
    Main scrollable content
  </main>
  <footer class="bg-gray-800 text-white p-4 text-center">
    Footer
  </footer>
</div>

Automatiska rader i praktiken

När du bygger rutnät med kort med dynamiskt innehåll vill du ofta ha enhetliga minsta radhöjder, så att kort med lite innehåll inte ser oproportionerligt små ut. Genom att använda grid-auto-rows via inline-format eller Tailwinds godtyckliga JIT-variant [grid-auto-rows:200px] kan du se till att varje rad är minst så hög som behövs. Detta förhindrar störande variationer i höjd i datadrivna listor.

<!-- Cards with minimum row height for visual consistency -->
<div class="grid grid-cols-3 gap-4" style="grid-auto-rows: minmax(120px, auto)">
  <div class="bg-indigo-100 p-4 rounded">Short card</div>
  <div class="bg-indigo-100 p-4 rounded">
    <p>Longer card with</p>
    <p>more content</p>
    <p>filling it out</p>
  </div>
  <div class="bg-indigo-100 p-4 rounded">Short</div>
</div>

Praktiskt applikationsskal med Grid

Här sätter vi ihop allt i ett komplett applikationsskal som använder CSS Grid för den yttre layouten. grid-rows definierar höjderna för sidhuvud, innehåll och sidfot. Inuti innehållsraden delar ett kapslat mönster med grid-cols-[sidebar_main] upp skärmen. Detta tillvägagångssätt är rent och förutsägbart och kräver ingen absolut positionering eller några flexbox-hack för strukturen på den översta nivån.

<div class="grid h-screen" style="grid-template-rows: 56px 1fr 40px">
  <header class="bg-indigo-700 text-white px-6 flex items-center">
    My App
  </header>
  <div class="grid overflow-hidden" style="grid-template-columns: 240px 1fr">
    <nav class="bg-indigo-50 p-4 overflow-y-auto border-r">
      Sidebar nav
    </nav>
    <main class="p-6 overflow-y-auto">
      Page content
    </main>
  </div>
  <footer class="bg-gray-200 text-center text-sm flex items-center justify-center">
    Copyright 2024
  </footer>
</div>

Snabbtest

Testa dina kunskaper om koncepten i Tailwind CSS Mastery från den här lektionen.

Sammanfattning av lektionen

I den här lektionen har du lärt dig att: grid-rows-* definierar explicita radspår med lika höga rader, grid-flow-row och grid-flow-col styr placeringsriktningen och grid-flow-dense fyller igen luckor som objekt som sträcker sig över flera celler lämnar efter sig. Nästa steg är mellanrumsverktyg och justeringskontroller i rutnätsbehållare.

Gratis att börja

Lär dig HTML med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”Gridrader och automatisk placering” gratis?

Ja – hela texten till ”Gridrader och automatisk placering” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Tailwind CSS Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Tailwind CSS Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Gridrader och automatisk placering”?

Definiera explicita rader med grid-rows-*, styr automatisk placering med grid-flow-* och låt webbläsaren placera elementen på ett intelligent sätt. Ni övar på Tailwind CSS Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Tailwind CSS Academy?

Du behöver inga förkunskaper. Utbildningen i Tailwind CSS Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Gridrader och automatisk placering”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Tailwind CSS Academy-lektionen?

Ja. Varje Tailwind CSS Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera gridkolumner
  2. Spänna över kolumner och rader
  3. Gridrader och automatisk placering
  4. Avstånd, justering och placering i grid
← Tillbaka till Tailwind CSS Academy