Bootstrap Les 2: Het grid systeem
Homeโ€บBootstrap-trackโ€บLes 2

๐Ÿ”ฒ Het grid systeem

โฑ Geschatte leestijd: 30 minuten ยท 7 stappen

Het Bootstrap-grid is het hart van het framework โ€” het is hoe je layouts bouwt die op elk scherm goed werken. Het systeem werkt met drie lagen: container โ†’ row โ†’ col. In deze les leer je hoe de 12 kolommen werken, hoe je breakpoints instelt en wat gutters zijn.

1 De drie lagen: container โ†’ row โ†’ col

Wat betekent dit?

Bootstrap's grid deelt de breedte van een pagina op in 12 gelijke kolommen. Jij bepaalt hoeveel kolommen elk element inneemt. col-6 = de helft (6 van de 12), col-4 = een derde, col-3 = een kwart.

Elke grid-layout volgt altijd dezelfde structuur:

De drie lagen โ€” altijd in deze volgorde
<div class="container">     <!-- 1. Centreert en begrenst -->
  <div class="row">          <!-- 2. Een rij van 12 kolommen -->
    <div class="col-6">      <!-- 3. Neemt 6/12 = helft breedte -->
      Linkerkolom
    </div>
    <div class="col-6">      <!-- 3. Neemt de andere 6/12 -->
      Rechterkolom
    </div>
  </div>
</div>
Live โ€” twee gelijke kolommen

๐Ÿ”— CSS-link: Bootstrap's grid is gebouwd op CSS Flexbox. row is display: flex; flex-wrap: wrap; en col-6 is flex: 0 0 50%; max-width: 50%;. Je herkent dit van de CSS-track โ€” Bootstrap heeft het voor jou uitgewerkt voor alle 12 stappen.

2 Kolom-breedtes โ€” de 12 stappen

Je kunt elke waarde van 1 t/m 12 gebruiken. De kolommen in een row moeten optellen tot 12 (anders loopt een kolom naar de volgende rij). Gebruik je alleen col zonder getal, verdeelt Bootstrap de ruimte automatisch gelijk.

Veelgebruikte kolom-combinaties
<!-- Twee gelijke kolommen (6+6=12) -->
<div class="row">
  <div class="col-6">Helft</div>
  <div class="col-6">Helft</div>
</div>

<!-- Drie gelijke kolommen (4+4+4=12) -->
<div class="row">
  <div class="col-4">Derde</div>
  <div class="col-4">Derde</div>
  <div class="col-4">Derde</div>
</div>

<!-- Automatische gelijke verdeling met col -->
<div class="row">
  <div class="col">Auto</div>
  <div class="col">Auto</div>
  <div class="col">Auto</div>
</div>

<!-- Asymmetrisch: sidebar + inhoud (3+9=12) -->
<div class="row">
  <div class="col-3">Sidebar</div>
  <div class="col-9">Hoofdinhoud</div>
</div>

3 Breakpoints โ€” responsive kolommen

Wat betekent dit?

Een breakpoint is de schermbreedte waarop een layout verandert. Bootstrap werkt mobile-first: je begint met de mobiele layout en bepaalt dan hoe het eruitziet op grotere schermen.

Prefix Naam Schermformaat Typisch gebruik
col-Extra small< 576pxAltijd actief (mobiel)
col-sm-Smallโ‰ฅ 576pxGrote telefoons
col-md-Mediumโ‰ฅ 768pxTablets
col-lg-Largeโ‰ฅ 992pxLaptops
col-xl-Extra largeโ‰ฅ 1200pxDesktops
col-xxl-Extra extra largeโ‰ฅ 1400pxBrede schermen

Je combineert meerdere breakpoints op รฉรฉn element. Het werkt altijd mobile-first: de kleinste specificatie geldt totdat de volgende breakpoint bereikt is.

Responsive kolom โ€” drie breakpoints gecombineerd
<div class="row">
  <!-- Mobiel: volledig breed
       Tablet (md): half breed
       Desktop (lg): een derde -->
  <div class="col-12 col-md-6 col-lg-4">
    Kaart
  </div>
  <div class="col-12 col-md-6 col-lg-4">
    Kaart
  </div>
  <div class="col-12 col-md-6 col-lg-4">
    Kaart
  </div>
</div>

๐Ÿ”— CSS-link: dit is precies de mobile-first aanpak uit de CSS-track (les 8). In kale CSS schrijf je @media (min-width: 768px) { .col { width: 50%; } }. Bootstrap doet dit voor alle 12 kolombreedtes en alle 5 breakpoints โ€” dat zijn 60 media queries die je niet hoeft te schrijven.

4 Gutters โ€” ruimte tussen kolommen

Gutters zijn de ruimtes tussen kolommen. Bootstrap voegt ze toe via padding op de kolommen en negatieve margin op de rij. Je beheert ze met g-, gx- (horizontaal) en gy- (verticaal) klassen op de row.

Gutters instellen
<!-- Geen gutter -->
<div class="row g-0"> ... </div>

<!-- Kleine gutter (8px) -->
<div class="row g-2"> ... </div>

<!-- Standaard gutter (16px) -->
<div class="row g-3"> ... </div>

<!-- Grotere gutter (24px) -->
<div class="row g-4"> ... </div>

<!-- Alleen horizontaal (gx) of verticaal (gy) -->
<div class="row gx-5 gy-2"> ... </div>

5 Nesting โ€” grid in grid

Je kunt een row plaatsen binnen een kolom. De geneste rij heeft ook weer 12 kolommen โ€” maar dan relatief aan de breedte van de bovenliggende kolom.

Geneste grid
<div class="container">
  <div class="row">
    <div class="col-8">
      Hoofdinhoud (8/12)
      <!-- Geneste rij binnen de 8-kolom -->
      <div class="row mt-3">
        <div class="col-6">Half van de 8-kolom</div>
        <div class="col-6">Half van de 8-kolom</div>
      </div>
    </div>
    <div class="col-4">Sidebar (4/12)</div>
  </div>
</div>

6 Oefening 1: Bouw een drie-koloms grid

Opdracht:

โœ“ Gebruik container, row en col- klassen

โœ“ Eerste rij: twee gelijke kolommen (col-6)

โœ“ Tweede rij: drie gelijke kolommen (col-4)

โœ“ Voeg g-3 toe aan elke row voor ruimte

editor
Live preview

7 Oefening 2: Responsive grid met breakpoints

Opdracht:

โœ“ Bouw een rij met 3 kaarten

โœ“ Mobiel: elke kaart volledig breed (col-12)

โœ“ Tablet en groter: twee naast elkaar (col-md-6)

โœ“ Desktop en groter: drie naast elkaar (col-lg-4)

โœ“ Voeg g-3 toe voor witruimte

editor
Live preview โ€” verklein dit venster om het responsive gedrag te zien

Kennischeck

4 vragen โ€” test je begrip van het Bootstrap-grid.

Bootstrap-track ยท Cheatsheet