Een vloeibare lay-out is een type codering waarbij de breedte van elementen wordt ingesteld in procenten of andere relatieve eenheden, niet in vaste pixels. Zo’n lay-out schaalt proportioneel mee met het formaat van het browservenster en behoudt de paginastructuur op elk scherm. Volgens MDN Web Docs (2026) is elastisch coderen de basis geworden van modern responsive design, hoewel het tegenwoordig zelden in zuivere vorm wordt gebruikt.
Belangrijkste
Vloeibare lay-out (liquid layout, fluid layout) — een coderingsbenadering waarbij elementafmetingen worden ingesteld in relatieve eenheden, niet in vaste pixels. Hierdoor kan de pagina meeschalen met het browservenster zonder horizontaal scrollen.
Het concept van elastisch coderen ontstond in het tijdperk van desktopmonitoren met verschillende resoluties. In de jaren 2000 zagen websites met een vaste breedte van 960 pixels er slecht uit op 15-inch en 30-inch monitoren. De vloeibare lay-out loste dit probleem op.
Volgens Web Almanac (2024) gebruikt 78% van de moderne websites elementen van elastisch coderen via relatieve eenheden. Zuivere vloeibare lay-outs komen minder vaak voor — voornamelijk in dashboards en beheerpanelen.
Elastisch coderen werd populair na de publicatie van John Allsopps artikel «A Dao of Web Design» in 2000, waarin hij opriep om vaste pixels te laten varen ten gunste van relatieve eenheden. Dit manifest legde de filosofische basis voor het gehele responsive design.
De belangrijkste relatieve eenheden in CSS zijn onderverdeeld in twee groepen: relatief ten opzichte van het ouderelement (procenten) en relatief ten opzichte van de viewport (vw, vh, vmin, vmax). Elke groep lost zijn eigen taken op in elastisch coderen.
/* Percent — width relative to parent */
.sidebar {
width: 30%;
}
.content {
width: 70%;
}
/* vw/vh — viewport-based units */
.hero-section {
width: 100vw;
height: 80vh;
}
.fullscreen-modal {
width: 90vmin;
}
Procenten worden berekend ten opzichte van de breedte van de oudercontainer. Geneste procenten kunnen cascadeberekeningen creëren die soms onverwachte resultaten geven. Eenheden vw/vh zijn gekoppeld aan de viewport en negeren oudercontainers — dit is handig voor volledige-scherm secties.
Bij elastisch coderen is het niet alleen belangrijk om blokbreedtes in relatieve eenheden in te stellen, maar ook de lettergrootte. De eenheid rem (root em) koppelt de tekstgrootte aan het HTML-rondelement. Door font-size in html te wijzigen, kan alle tekst op de pagina worden geschaald.
/* Global text scaling via rem */
html {
font-size: 62.5%; /* 1rem = 10px */
}
.heading {
font-size: 2.4rem; /* = 24px */
}
.body-text {
font-size: 1.6rem; /* = 16px */
}
Het belangrijkste verschil tussen een vloeibare en adaptieve lay-out is de aard van de breedteverandering. Een vloeibare lay-out verandert continu bij elke wijziging van het venster, terwijl een adaptieve — discreet via media queries.
Vloeibare lay-out — continue schaling, adaptief — schakelen tussen vaste lay-outs. Elke benadering heeft sterke en zwakke punten.
| Kenmerk | Vloeibare lay-out | Adaptieve lay-out |
|---|---|---|
| Eenheden | %, vw, rem | px, vaste breedtes |
| Schaling | Vloeiend, continu | Springend, via breekpunten |
| Schermondersteuning | Elke breedte | Alleen ingestelde resoluties |
| Complexiteit | Laag | Hoog (media queries nodig) |
| Controle | Minder controle | Volledige controle op breekpunten |
In de praktijk gebruiken de meeste moderne websites een hybride benadering: een elastisch raster met relatieve eenheden + media queries voor kritieke breekpunten. Zuiver elastisch coderen zonder media queries kan er slordig uitzien op zeer brede of zeer smalle schermen.
De basisimplementatie van een vloeibare lay-out omvat drie componenten: relatieve breedte-eenheden, maximale/minimale beperkingen en flexbox of grid voor ruimteverdeling.
/* Fluid grid with Flexbox */
.container {
display: flex;
flex-wrap: wrap;
}
.card {
flex: 1 1 30%;
min-width: 250px;
}
/* Fluid grid with CSS Grid */
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}
Flexbox-benadering met flex: 1 1 30% creëert kaarten die ongeveer 30% van de containerbreedte innemen, maar kunnen versmallen tot 250px. Wanneer er veel kaarten zijn, worden ze naar de volgende rij verplaatst. Grid-benadering met auto-fit en minmax maakt automatisch kolommen die in de container passen.
Het belangrijkste probleem van zuiver elastisch coderen — op zeer brede schermen rekt een tekstregel zich uit tot 2000+ pixels, waardoor lezen onmogelijk wordt. Voor de oplossing worden CSS-eigenschappen min-width, max-width gebruikt.
/* Container limits for readability */
.content-wrapper {
width: 90%;
max-width: 1200px;
min-width: 320px;
margin: 0 auto;
}
max-width: 1200px voorkomt het uitrekken van inhoud op ultrawide monitors. min-width: 320px garandeert de minimale containerbreedte op kleine schermen. De combinatie width: 90% + max-width creëert een elastische container met een plafond — het populairste patroon in modern webdesign.
Volgens HTTP Archive (2025) gebruikt 92% van de sites in de top-1000 max-width voor inhoudsblokken. De standaardwaarde voor desktop lay-outs is 1140–1200 pixels.
Modern webdesign gebruikt zelden een zuiver vloeibare of zuiver adaptieve benadering. De hybride methode combineert de voordelen van beide: een elastisch raster op relatieve eenheden + media queries voor globale herstructureeringen.
/* Hybrid: fluid base + media query */
.layout {
display: grid;
grid-template-columns: 1fr 3fr;
}
@media (max-width: 768px) {
.layout {
grid-template-columns: 1fr;
}
}
Op desktop gebruikt de lay-out elastische kolommen 1fr en 3fr — de verhouding blijft behouden bij elke vensterbreedte. Op mobiel schakelt de media query naar een éénkoloms schema, waarbij de kolommen verticaal worden geplaatst.
Het voordeel van de hybride benadering — de ontwikkelaar schrijft minder media queries, omdat het elastische raster zich automatisch aanpast aan tussenliggende formaten. Media queries zijn alleen nodig voor kritieke structuurwijzigingen, niet voor elke stap van de schermbreedte.
Veelgestelde vragen
Een vloeibare lay-out gebruikt relatieve eenheden en schaalt vloeiend bij elke vensterwijziging. Een adaptieve lay-out schakelt tussen vaste sjablonen via media queries. Moderne websites combineren meestal beide benaderingen.
Voor containers — procenten (%) en fr (flex/grid). Voor lettertypen — rem (relatief ten opzichte van het rondelement). Voor volledige-scherm secties — vw/vh. De combinatie van deze eenheden biedt maximale flexibiliteit.
Op zeer brede schermen worden tekstregels te lang om te lezen. Op zeer smalle schermen kunnen elementen worden samengedrukt tot een onleesbaar formaat. Oplossing — gebruik max-width en min-width om het schalen te beperken.
Google adviseert responsive design (responsive web design) met media queries, maar verbiedt elastisch coderen niet. Vanuit SEO-oogpunt is het belangrijker dat de pagina correct wordt weergegeven op mobiele apparaten, niet het specifieke type codering.
Ja, vloeibare lay-out bestond al lang vóór de komst van CSS Grid. Het kan worden geïmplementeerd met float, inline-block, flexbox of tabelcodering. Flexbox en Grid zijn moderne en handigste tools voor deze taak.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook