Wanneer je een lay-out ontwerpt in software zoals Adobe InDesign of Figma, werk je voortdurend met visuele kaders: hoe breed is de kolom, hoe hoog is een informatieblok, welke rand krijgt een afbeelding en staat de kaart mooi gecentreerd op het scherm?
In webdesign werkt dit exact hetzelfde. Elk element op een webpagina—van een simpele alinea tot een complete navigatiebalk—is in essentie een rechthoekig blok.
In deze les leer je hoe je de afmetingen van die blokken bepaalt met width en height, hoe je strakke randen toevoegt met border, en hoe je een element perfect in het midden van de pagina plaatst met de klassieke CSS-truc margin: auto.
width & heightStandaard nemen zogenaamde block-elementen (zoals <div>, <section>, <article> of <h1>) de volledige beschikbare breedte ($100\%$) van de pagina in. Met de eigenschappen width (breedte) en height (hoogte) neem je zelf de controle over de afmetingen.
.kaart {
width: 400px; /* Vaste breedte van 400 pixels */
height: 250px; /* Vaste hoogte van 250 pixels */
}
px) vs. Percentages (%)px): Geeft een vaste afmeting. Het element verandert niet van grootte, ongeacht hoe groot of klein het scherm van de gebruiker is.%): Geeft een relatieve afmeting. Het element schaalt mee op basis van de breedte van het bovenliggende element (parent container)..banner {
width: 100%; /* Vult altijd de volledige breedte van het scherm */
}
max-width (Responsive Design)Als je een element een vaste breedte geeft van width: 800px;, ontstaat er een probleem op een smartphone met een scherm van $375\text{px}$ breed: het element past niet op het scherm en er verschijnt een lelijke horizontale scrollbalk.
De oplossing hiervoor is max-width:
.container {
max-width: 800px; /* Maximaal 800px breed op een groot scherm... */
width: 100%; /* ...maar krimpt flexibel mee op kleinere mobiele schermen! */
}
Gouden regel voorheight: Probeer het instellen van een vasteheightbij tekstelementen zo veel mogelijk te vermijden. Als een gebruiker de tekstgrootte aanpast of de pagina leest op een smal scherm, kan de tekst 'uit' het vak stromen (overflow). Laat de hoogte liever automatisch bepalen door de inhoud van het element!
border eigenschapMet een border (rand) geef je de contouren van een element aan. Je kunt de dikte, de stijl én de kleur van de rand instellen.
In plaats van drie losse CSS-regels te schrijven, combineren we de eigenschappen meestal in één overzichtelijke regel:
.kaart {
/* border: [dikte] [stijl] [kleur]; */
border: 2px solid #2563eb;
}
border-width): Bepaalt hoe dik de lijn is (bijv. 1px, 3px, 5px).border-style): Bepaalt het type lijn. De meest gebruikte opties zijn:solid: Een strakke, doorlopende lijn.dashed: Een gestreepte lijn.dotted: Een stippellijn.double: Een dubbele lijn.none: Geen rand (handig om een bestaande rand te wissen).border-color): De kleur van de rand (Hex-code, RGB, HSL of kleurnaam).
Wil je enkel aan de onderkant een lijn trekken (bijvoorbeeld onder een titel)? Je kunt elke zijde afzonderlijk stylen:
h2 {
border-bottom: 3px solid #ef4444; /* Enkel een rode lijn onderaan */
}
.offerte-box {
border-left: 6px solid #10b981; /* Een opvallende groene accentlijn links */
}
border-radius)Geen strakke hoeken van $90^\circ$, maar zachte afgeronde hoeken? Gebruik de eigenschap border-radius:
.kaart {
border: 1px solid #cbd5e1;
border-radius: 8px; /* Rondt alle 4 de hoeken af met een straal van 8px */
}
.ronde-knop {
border-radius: 999px; /* Maakt een knop volledig afgerond (pilvormig) */
}
.pasfoto {
width: 150px;
height: 150px;
border-radius: 50%; /* Maakt van een vierkante afbeelding een perfecte cirkel! */
}
margin: autoEen van de meest gestelde vragen door beginnende webdesigners is: "Hoe plaats ik een blok of kaart netjes in het midden van mijn pagina?"
Als je een tekst wilt centreren, gebruik je text-align: center;. Maar als je een heel blok-element (zoals een <main> of een <div class="card">) wilt centreren op het scherm, werkt text-align niet. Daarvoor gebruiken we margin: auto.
.gecentreerd-blok {
max-width: 600px; /* 1. Bepaal een breedte! */
margin: 0 auto; /* 2. Centreer het blok horizontaal */
}
margin: auto?margin regelt de buitenruimte rondom een element. Met de notatie margin: 0 auto; zeg je:
0 (eerste waarde): Boven- en onderkant krijgen $0\text{px}$ buitenruimte.auto (tweede waarde): De browser berekent de overgebleven witruimte aan de linker- en rechterkant van het scherm en verdeelt deze exact gelijk over beide kanten. Het resultaat? Het blok staat perfect gecentreerd!⚠️ Onthoud deze cruciale voorwaarde:
margin: autowerkt ENKEL als het element een ingestelde breedte (widthofmax-width) heeft die kleiner is dan het scherm. Een element dat $100\%$ breed is, heeft immers geen overgebleven ruimte aan de zijkanten om te verdelen!
Laten we alle geleerde concepten combineren in een stijlvolle, responsieve informatiekaart:
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</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<main class="profiel-kaart">
<h2>Grafische Technieken</h2>
<p>In deze richting combineer je creatieve vormgeving met de nieuwste digitale webtechnologieën.</p>
<a href="#" class="knop">Ontdek meer</a>
</main>
</body>
</html>
style.css)/* Algemene instellingen */
body {
background-color: #f1f5f9;
font-family: Arial, sans-serif;
padding: 40px 20px;
margin: 0;
}
/* De gecentreerde kaart */
.profiel-kaart {
/* 1. Afmetingen & Centreren */
max-width: 480px;
width: 100%;
margin: 0 auto; /* Centreert de kaart op het scherm */
/* 2. Binnenruimte & Achtergrond */
background-color: #ffffff;
padding: 32px;
/* 3. Randen & Afwerking */
border: 2px solid #e2e8f0;
border-top: 6px solid #2563eb; /* Opvallende accentrand aan de bovenkant */
border-radius: 12px;
}
.profiel-kaart h2 {
color: #0f172a;
margin-top: 0;
}
.profiel-kaart p {
color: #475569;
line-height: 1.6;
}
/* De knop binnen de kaart */
.knop {
display: inline-block;
background-color: #2563eb;
color: #ffffff;
padding: 10px 20px;
text-decoration: none;
border-radius: 6px;
font-weight: bold;
border: none;
}
width / height: Bepalen de breedte en hoogte van een element.max-width: Zorgt ervoor dat een element flexibel meeschaalt op kleine schermen (essentieel voor mobiele telefoons).border: Bepaalt de rand rondom een element via de verkorte notatie: border: [dikte] [stijl] [kleur]; (bijv. border: 2px solid #000;).border-radius: Maakt de hoeken van een element afgerond (bijv. 8px of 50% voor een cirkel).margin: 0 auto;: Centreert een blok-element horizontaal op de pagina, mits het element een ingestelde width of max-width heeft!