Wanneer je in het werkveld als webdesigner of front-end developer aan de slag gaat, hoef je niet altijd elke CSS-regel vanaf een leeg .css-bestand op te bouwen. Voor veel veelvoorkomende elementen β zoals een responsieve navigatiebalk, een kaartengrid of stijlvolle knoppen β maken ontwikkelaars gebruik van een CSS Framework.
Het meest gebruikte en populairste framework ter wereld is Bootstrap 5. Bootstrap biedt een gigantische bibliotheek van kant-en-klare stijlen, handige hulpklassen (utility classes) en een krachtig gridsysteem waarmee je binnen no-time een volledig responsieve website bouwt.
In deze les leer je hoe je Bootstrap 5 koppelt, hoe het beroemde 12-kolommen gridsysteem werkt en hoe je met hulpklassen en componenten razendsnel een moderne interface opbouwt.
Bootstrap is een open-source toolkit ontwikkeld door Twitter. Het is gebouwd volgens het Mobile-First principe: lay-outs worden in de eerste plaats ontworpen voor kleine schermen en schalen vervolgens vloeiend op naar grotere schermen.
π‘ Belangrijk in Bootstrap 5:
In versie 5 is afscheid genomen van jQuery! Bootstrap 5 draait op pure, snelle JavaScript (Vanilla JS), wat zorgt voor snellere laadtijden en een modernere workflow.
De snelste manier om met Bootstrap te starten is via een CDN (Content Delivery Network). Je hoeft hiervoor niets te downloaden; je voegt eenvoudig twee links toe aan je HTML-bestand:
<head> van je HTML.</body>-tag (nodig voor interactieve onderdelen zoals pop-ups en mobiele menu's).<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 5 Startpagina</title>
<!-- 1. Bootstrap 5 CSS -->
<link href="[https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css](https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css)" rel="stylesheet">
</head>
<body>
<h1>Hallo, Bootstrap 5!</h1>
<!-- 2. Bootstrap 5 JS Bundle -->
<script src="[https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js](https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js)"></script>
</body>
</html>
Het hart van Bootstrap is het Grid Systeem. Het grid is gebaseerd op CSS Flexbox en verdeelt de breedte van het scherm altijd in 12 gelijke kolommen.
Om een Bootstrap grid op te bouwen, gebruik je altijd de vastgestelde drie-eenheid:
.container of .container-fluid): De buitenste schil die de inhoud reguleert en centreert..row): De horizontale rij die de kolommen vasthoudt..col-*): De individuele vakken waarin je content plaatst.βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β .container β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β .row β β
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββ β β
β β β .col-3 (25%) β β .col-3 (25%) β β .col-3 (25%) β β .col-3 β β β
β β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββ β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Omdat een scherm op mobiel kleiner is dan op een desktop, heeft Bootstrap voor elke schermgrootte een breakpoint-class:
| Breakpoint | Klasse-voorvoegsel | Schermbreedte | Apparaat |
|---|---|---|---|
| Extra Small | .col- | $< 576\text{px}$ | Smartphones (staand) |
| Small | .col-sm- | $\ge 576\text{px}$ | Smartphones (liggend) |
| Medium | .col-md- | $\ge 768\text{px}$ | Tablets |
| Large | .col-lg- | $\ge 992\text{px}$ | Laptops / Desktops |
| Extra Large | .col-xl- | $\ge 1200\text{px}$ | Grote schermen |
De som van de kolomgetallen in één .row moet voor een complete rij altijd op 12 uitkomen.
<div class="container">
<div class="row">
<!-- Op mobiel: 100% breed (12/12) -->
<!-- Op tablet (md): 50% breed (6/12) -->
<!-- Op desktop (lg): 33.3% breed (4/12) -->
<div class="col-12 col-md-6 col-lg-4">
<div class="p-3 bg-light border">Kolom 1</div>
</div>
<div class="col-12 col-md-6 col-lg-4">
<div class="p-3 bg-light border">Kolom 2</div>
</div>
<div class="col-12 col-md-12 col-lg-4">
<div class="p-3 bg-light border">Kolom 3</div>
</div>
</div>
</div>
Met Utility Classes stel je marges, kleuringen, uitlijningen en typografie in rechtstreeks via HTML-klassen, zonder één regel eigen CSS te schrijven!
Bootstrap gebruikt de letters m (margin) en p (padding), gecombineerd met een richting en een schaal van 0 tot 5:
t = top (mt-3)b = bottom (mb-4)s = start / links (ms-2)e = end / rechts (me-auto)x = horizontaal (links & rechts, bijv. px-5)y = verticaal (boven & onder, bijv. py-3)<!-- Marge-onder van niveau 4 en verticale padding van niveau 3 -->
<div class="mb-4 py-3">Inhoud met ruimtes</div>
Bootstrap gebruikt vaste kleurnamen voor een consistente uitstraling:
primary: Hoofdkleur (blauw)secondary: Neutraal (grijs)success: Positief / Gelukt (groen)danger: Fout / Foutmelding (rood)warning: Waarschuwing (geel/oranje)dark / light: Donker of licht<!-- Tekstkleuren -->
<p class="text-primary">Blauwe tekst</p>
<p class="text-danger fw-bold">Rode, vette tekst</p>
<!-- Achtergrondkleuren -->
<div class="bg-dark text-white p-4">Donker blok met witte tekst</div>
Snel elementen centreren of verbergen op specifieke schermen:
d-flex: Maakt van het element een Flex-container.justify-content-center: Centreert kinderen horizontaal.align-items-center: Centreert kinderen verticaal.d-none d-md-block: Verbergt het element op mobiel, maar toont het vanaf tablets (md).Bootstrap bevat tientallen vooraf ontworpen, interactieve bouwstenen. Je hoeft enkel de juiste klassennamen in te vullen.
.btn)<button type="button" class="btn btn-primary">Primaire Knop</button>
<button type="button" class="btn btn-outline-danger">Rode Omtrekknop</button>
<a href="#" class="btn btn-success btn-lg">Grote Groene Link</a>
.card)Een .card is het meest gebruikte component voor het tonen van artikelen, producten of portfolio-items.
<div class="card" style="width: 18rem;">
<img src="foto.jpg" class="card-img-top" alt="Project">
<div class="card-body">
<h5 class="card-title">Project Titel</h5>
<p class="card-text">Korte beschrijving van het grafische ontwerp.</p>
<a href="#" class="btn btn-primary">Bekijk Werk</a>
</div>
</div>
.navbar)Met een paar klassen maakt Bootstrap een navigatiebalk die op desktop netjes uitgevouwen staat, maar op mobiel automatisch inklapt tot een hamburger-menu!
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand" href="#">Studio Viso</a>
<!-- Hamburger-knop op mobiel -->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navContent">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navContent">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link active" href="#">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#">Portfolio</a></li>
<li class="nav-item"><a class="nav-link" href="#">Contact</a></li>
</ul>
</div>
</div>
</nav>
In dit praktijkvoorbeeld combineren we de Navbar, Hero-sectie, Grid en Cards in één compleet HTML-bestand.
index.html)<!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Viso Grafische Technieken - Bootstrap 5 Demo</title>
<!-- Bootstrap 5 CSS CDN -->
<link href="[https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css](https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css)" rel="stylesheet">
</head>
<body class="bg-light">
<!-- 1. NAVBAR -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark sticky-top">
<div class="container">
<a class="navbar-brand fw-bold text-primary" href="#">VISO<span class="text-white">DESIGN</span></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainMenu">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="mainMenu">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link active" href="#">Home</a></li>
<li class="nav-item"><a class="nav-link" href="#opleiding">Opleidingen</a></li>
<li class="nav-item"><a class="nav-link" href="#contact">Contact</a></li>
</ul>
</div>
</div>
</nav>
<!-- 2. HERO SECTIE -->
<header class="bg-primary text-white text-center py-5 mb-5">
<div class="container py-4">
<h1 class="display-4 fw-bold">Bouw de Toekomst van het Web</h1>
<p class="lead mb-4">Leer professioneel webdesign met HTML, CSS, JavaScript en Bootstrap 5.</p>
<a href="#opleiding" class="btn btn-light btn-lg text-primary fw-bold px-4">Ontdek de Vakken</a>
</div>
</header>
<!-- 3. MAIN CONTENT: CARDS GRID -->
<main class="container mb-5" id="opleiding">
<div class="text-center mb-4">
<h2 class="fw-bold">Onze Modules</h2>
<p class="text-muted">Kies een vakgebied en ontwikkel je talenten.</p>
</div>
<div class="row g-4">
<!-- Kaart 1 -->
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100 shadow-sm border-0">
<div class="card-body p-4">
<span class="badge bg-primary mb-2">Jaar 5 & 6</span>
<h3 class="card-title h5 fw-bold">Front-End Design</h3>
<p class="card-text text-muted">Meester worden in Flexbox, CSS Grid, Transities en moderne frameworks zoals Bootstrap.</p>
<a href="#" class="btn btn-outline-primary btn-sm">Bekijk Lesmateriaal</a>
</div>
</div>
</div>
<!-- Kaart 2 -->
<div class="col-12 col-md-6 col-lg-4">
<div class="card h-100 shadow-sm border-0">
<div class="card-body p-4">
<span class="badge bg-success mb-2">Jaar 6</span>
<h3 class="card-title h5 fw-bold">UI / UX Prototyping</h3>
<p class="card-text text-muted">Ontwerp interactieve lay-outs en wireframes die aansluiten op de wensen van de gebruiker.</p>
<a href="#" class="btn btn-outline-primary btn-sm">Bekijk Lesmateriaal</a>
</div>
</div>
</div>
<!-- Kaart 3 -->
<div class="col-12 col-md-12 col-lg-4">
<div class="card h-100 shadow-sm border-0">
<div class="card-body p-4">
<span class="badge bg-warning text-dark mb-2">Gevorderd</span>
<h3 class="card-title h5 fw-bold">JavaScript & DOM</h3>
<p class="card-text text-muted">Geef interactie en dynamiek aan je websites met moderne JavaScript functies.</p>
<a href="#" class="btn btn-outline-primary btn-sm">Bekijk Lesmateriaal</a>
</div>
</div>
</div>
</div>
</main>
<!-- 4. FOOTER -->
<footer class="bg-dark text-white text-center py-4">
<div class="container">
<p class="mb-0 text-muted">© 2026 Grafische Technieken Viso - Aangemaakt met Bootstrap 5</p>
</div>
</footer>
<!-- Bootstrap JS Bundle -->
<script src="[https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js](https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js)"></script>
</body>
</html>
<head> en het JS bundle script voor </body> te plaatsen..container $\rightarrow$ .row $\rightarrow$ .col-*.sm, md, lg, xl) om kolommen op verschillende schermen aan te passen (bijv. col-12 col-md-6).m-3, py-4), kleuren (text-primary, bg-dark) en flexbox-uitlijning rechtstreeks in de HTML..btn, .card, en .navbar om professionele interfaces op te bouwen.