Tailwind CSS Academy · Lektion

Gridrækker og automatisk placering

Definér eksplicitte rækker med grid-rows-*, styr automatisk placering med grid-flow-*, og lad browseren placere elementer intelligent.

Lektion 3 af 413 trin

Gridrækker og automatisk placering er en gratis Tailwind CSS Academy-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Tailwind CSS Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Tailwind CSS Academy-kurset indeholder 4 lektioner i alt.

Eksplicitte og implicitte gitterrækker

Når du placerer elementer i et gitter, opretter CSS Grid rækker på to måder: eksplicit (du definerer dem med grid-rows-*) eller implicit (browseren genererer dem automatisk, når elementerne går ud over gitteret). Når du forstår denne forskel, kan du styre højder præcist, når det er nødvendigt, eller lade browseren håndtere dem, når indholdets størrelse varierer.

<!-- 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>

Værktøjerne grid-rows-N

Tailwind har grid-rows-1 til grid-rows-6 til at definere eksplicitte rækkespor. Internt kompileres grid-rows-3 til grid-template-rows: repeat(3, minmax(0, 1fr)). Disse rækker deler containerens tilgængelige højde ligeligt. Det er mest nyttigt, når containeren har en fast højde eller en højde baseret på en procentdel.

<!-- 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>

Implicitte rækker og grid-auto-rows

Når der er flere elementer, end dine eksplicitte rækker kan indeholde, opretter browseren implicitte rækker. Som standard får disse implicitte rækker en størrelse, der passer til deres indhold. Du kan styre deres højde med brugerdefineret CSS eller Tailwinds syntaks til vilkårlige værdier, for eksempel ved at angive rækkehøjden med en inline-typografi eller bruge værktøjerne auto-rows-*, som findes i nyere 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>

Forståelse af grid-flow

Egenskaben grid-flow styrer algoritmen for automatisk placering — altså rækkefølgen, hvori elementer udfylder de tilgængelige gitterceller. Tailwinds grid-flow-row (standard) udfylder hver række fra venstre mod højre, før den går nedad. grid-flow-col udfylder hver kolonne oppefra og ned, før den går mod højre. Det svarer til forskellen mellem at læse en bog fra venstre mod højre og at læse en avis kolonne for kolonne.

<!-- 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 til layout med kolonneprioritet

Når du anvender grid-flow-col, ændres algoritmen for automatisk placering, så kolonner udfyldes først. Kombineret med grid-rows-* for at begrænse, hvor højt hver kolonne kan vokse, skaber det et lodret kortflow i avis- eller Pinterest-stil. Elementerne udfyldes nedad i den første kolonne og flyttes derefter automatisk til den næste kolonne.

<!-- 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 aktiverer algoritmen til tæt pakning, som lader browseren udfylde huller efter store elementer, der spænder over flere spor. Uden tæt pakning efterlader et gitter med spanning huller, fordi placeringen følger en fast rækkefølge. Tæt pakning er ideel til billedgallerier, hvor du ønsker en kompakt mosaik uden spildplads.

<!-- 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 række- og kolonneflow i kombination

Du kan kombinere flowretning og tæthed med grid-flow-row-dense eller grid-flow-col-dense. Varianten med row-dense udfylder rækker først, men udfylder også eventuelle huller, mens col-dense udfylder kolonner først og udfylder huller bagefter. Det er de foretrukne værktøjer til layout i galleristil med kort i blandede størrelser, hvor udseendet er vigtigere end en streng rækkefølge.

<!-- 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>

Kombination af gitterrækker og kolonner

Hvis du definerer både grid-rows-* og grid-cols-* sammen, får du en fuldt specificeret gitterstruktur, der minder om et regneark. Hver celle i denne struktur har en forudsigelig placering. Denne tilgang fungerer rigtig godt til dashboard-layouts, hvor du ved præcis, hvor mange sektioner du har brug for, og vil have nøjagtig kontrol over deres højder og 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>

Tilpassede rækkehøjder med vilkårlige værdier

Tailwinds syntaks for vilkårlige værdier lader dig skrive enhver CSS-værdi i kantede parenteser. For gitterrækker kan du bruge grid-rows-[100px_1fr_auto] til at definere en fast header på 100px, et fleksibelt indholdsområde og en footer med automatisk højde. Det er mere kompakt end at skrive inline-typografi og drager fordel af JIT-kompilering til 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>

Automatiske rækker i praksis

Når du bygger kortgittere med dynamisk indhold, vil du ofte have ensartede minimumshøjder for rækkerne, så korte kort ikke ser meget små ud. Ved at bruge grid-auto-rows via inline-typografi eller Tailwinds JIT-syntaks for vilkårlige værdier [grid-auto-rows:200px] kan du sikre, at hver række mindst er så høj som nødvendigt. Det forhindrer markante forskelle i højden i datadrevne lister.

<!-- 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>

Praktisk applikationsskal med Grid

Her samler vi det hele i en komplet applikationsskal, der bruger CSS Grid til det ydre layout. grid-rows definerer højderne på header, indhold og footer. Inde i indholdsrækken opdeler et indlejret mønster med grid-cols-[sidebar_main] skærmen. Denne tilgang er enkel og forudsigelig og kræver hverken absolut positionering eller flexbox-tricks til strukturen på øverste niveau.

<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>

Hurtigt tjek

Test din forståelse af begreberne fra Tailwind CSS Mastery i denne lektion.

Opsummering af lektionen

I denne lektion lærte du, at: grid-rows-* definerer eksplicitte rækkespor med ens højder, grid-flow-row og grid-flow-col styrer placeringsretningen, og grid-flow-dense udfylder huller efterladt af elementer, der spænder over flere spor. Næste gang ser vi på afstandsværktøjer og justeringskontroller i gittercontainere.

Gratis at komme i gang

Lær HTML med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Gridrækker og automatisk placering” gratis?

Ja — hele teksten til “Gridrækker og automatisk placering” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Tailwind CSS Academy-kurset, skal du opgradere til CoddyKit PRO. Tailwind CSS Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Gridrækker og automatisk placering”?

Definér eksplicitte rækker med grid-rows-*, styr automatisk placering med grid-flow-*, og lad browseren placere elementer intelligent. Du øver dig i Tailwind CSS Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Tailwind CSS Academy?

Der kræves ingen tidligere erfaring. Tailwind CSS Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Gridrækker og automatisk placering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Tailwind CSS Academy-lektion?

Ja. Alle Tailwind CSS Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition af gridkolonner
  2. Spænd over kolonner og rækker
  3. Gridrækker og automatisk placering
  4. Afstand, justering og placering i grid
← Tilbage til Tailwind CSS Academy