edubun
Nederlands

Het blokmodel

Geef een blok width: 200px, 16px binnenruimte en een rand van 2px en het neemt standaard 236 pixels schermbreedte in, geen 200.

Elk element is een blok

Om een pagina in te delen, zet de browser elk element om in een rechthoek. Elk blok heeft vier lagen, van binnen naar buiten. Het inhoudsgebied bevat tekst of beeld. Binnenruimte is ruimte binnen het blok, tussen de inhoud en de rand, en krijgt de achtergrondkleur van het blok. De rand is een lijn om de binnenruimte. De marge is ruimte buiten de rand die andere blokken wegduwt; hij is altijd doorzichtig. De ontwikkelaarstools van de browser tekenen precies dit schema wanneer je een element inspecteert, met de getallen ingevuld.

Inhoud, binnenruimte, rand en marge. Bij de standaard content-box-afmetingen stelt width alleen de inhoud in: 200 + 16 + 16 + 2 + 2 = 236 pixels breed.

Verkorte notatie voor vier zijden

padding, margin en border-width accepteren één tot vier waarden, met de klok mee vanaf boven. padding: 16px stelt alle vier zijden in. padding: 8px 16px stelt boven en onder in op 8 en links en rechts op 16. padding: 4px 8px 12px 16px stelt boven, rechts, onder en links in die volgorde in. Elke zijde kun je ook afzonderlijk instellen, zoals met margin-top. border: 2px solid #333 stelt breedte, stijl en kleur tegelijk in; zonder stijl zoals solid of dashed wordt helemaal geen rand getekend.

box-sizing: de instelling die bijna iedereen verandert

Standaard stellen width en height alleen de afmetingen van het inhoudsgebied in en komen binnenruimte en rand daar nog bij. Dat is het content-box-model en het maakt indelingen onhandig: twee blokken met width: 50% en enige binnenruimte passen niet meer naast elkaar. Met box-sizing: border-box omvat de breedte de binnenruimte en rand en krimpt het inhoudsgebied om plaats te maken. Veel stylesheets beginnen door dit op elk element toe te passen met *, *::before, *::after { box-sizing: border-box; }.

Blok- en inline-elementen

Blokken gedragen zich anders afhankelijk van hun display-waarde. Blokelementen zoals p, h1 en section beginnen op een nieuwe regel en rekken uit om de breedte van hun container te vullen. Inline-elementen zoals a, strong en span staan binnen een tekstregel; width en height zijn er niet op van toepassing en hun verticale binnenruimte en marges duwen andere regels niet weg. display: inline-block zit ertussenin: het blok loopt als een woord mee in de regel, maar respecteert breedte, hoogte en binnenruimte, wat past bij kleine labels en knoppen.

Marges die samenvallen

Eén regel verrast bijna iedereen. Als de ondermarge van een blok de bovenmarge van het volgende raakt, worden ze niet opgeteld; de grootste wint. Een alinea met margin-bottom: 20px gevolgd door een kop met margin-top: 30px komt op 30 pixels afstand te staan, niet 50. Dit heet samenvallende marges en gebeurt alleen met verticale marges tussen blokken in de normale stroom, niet binnen flex- of gridcontainers. Om een blok horizontaal te centreren, geef je het een width of max-width en margin: 0 auto: de twee automatische zijmarges verdelen de vrije ruimte gelijk.

Omlijningen worden buiten de rand getekend en nemen geen ruimte in. Daarom gebruiken browsers ze voor de toetsenbordfocusring. Als je een omlijning verwijdert met outline: none, vervang die dan door een andere duidelijke focusstijl.
inhoudsgebiedWaar tekst en afbeeldingen staan
binnenruimteRuimte binnen de rand; toont de achtergrond
randLijn rond de binnenruimte; vereist een stijl
margeDoorzichtige ruimte buiten de rand
box-sizing: border-boxwidth omvat binnenruimte en rand
samenvallende margesRakende verticale marges: de grootste wint
inline-blockLoopt mee in een regel maar respecteert breedte en binnenruimte
  1. Zet de lagen van binnen naar buiten op volgorde.
  2. content-box: width 300px, padding 20px, border 5px. Wat is de totale breedte?
  3. border-box: width 300px, padding 20px, border 5px. Hoe breed is het inhoudsgebied?
  4. Wat stelt margin: 10px 20px in?
    • 10 boven en onder, 20 links en rechts
    • 10 links en rechts, 20 boven en onder
    • 10 boven, 20 onder
  5. padding: 1px 2px 3px 4px: hoeveel staat links?
  6. Een margin-bottom van 20px raakt een margin-top van 30px. Hoe groot is de tussenruimte?
  7. Waarom tekent border: 2px #333 niets?
    • Er ontbreekt een randstijl zoals solid
    • De kleur is te donker
    • Randen hebben een marge nodig
  8. Welke display-waarde laat een span breedte en verticale binnenruimte krijgen terwijl hij in de regel blijft?
    • inline-block
    • inline
    • none
  9. Hoe centreer je een blok van 600px breed horizontaal?
    • margin: 0 auto
    • padding: auto
    • text-align: center on the block
  10. Welk deel van het blok toont de achtergrondkleur?
    • Inhoud en binnenruimte (en onder de rand)
    • Alleen de inhoud
    • Ook de marge
Belangrijkste punten
  • Inhoud, binnenruimte, rand, marge.
  • content-box telt binnenruimte en rand bij width op; border-box omvat ze.
  • Verkorte notatie loopt met de klok mee vanaf boven; rakende verticale marges vallen samen.
Bronnen van deze cursus (5)
  • W3C CSS Working Group specifications: CSS Snapshot 2025, Selectors Level 4, CSS Cascading and Inheritance Level 5, CSS Color Level 4, CSS Values and Units Level 4, CSS Box Model Level 3, CSS Box Sizing Level 3, CSS Fonts Level 4, CSS Flexible Box Layout Level 1, CSS Grid Layout Level 2, Media Queries Level 4 and Level 5 (w3.org/TR/, checked 2026-10-17)
  • MDN Web Docs, Learn web development: CSS styling basics and CSS layout, and the CSS reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Styling_basics, .../Core/CSS_layout, developer.mozilla.org/en-US/docs/Web/CSS, checked 2026-10-17)
  • W3C, CSS history and CSS1 Recommendation of 17 December 1996 (w3.org/Style/CSS20/history.html, w3.org/press-releases/1996/css1-rec, checked 2026-10-17)
  • W3C WCAG 2.2, success criteria 1.4.3 Contrast (Minimum)
  • 1.4.8 Visual Presentation, 1.4.10 Reflow, 1.4.12 Text Spacing (w3.org/TR/WCAG22/, checked 2026-10-17).

Geraadpleegd: 2026-10-17