H6 - Padding, margin en border
00 - Bestaande projecten worden nette inhoudsblokken
Werk verder in dezelfde stylesheet. Je drie projecten op Portfolio krijgen article-containers en worden het vaste oefenmateriaal voor ruimte, randen en breedtes. De eigen kleuren en achtergrond blijven behouden.
01 - Het box model
Elk zichtbaar HTML-element kun je zien als een rechthoekige doos. CSS noemt dit het box model. Die doos bestaat uit inhoud, padding, border en margin.
- Content: de inhoud zelf, bijvoorbeeld tekst of een afbeelding.
- Padding: ruimte binnen het element, tussen de inhoud en de rand.
- Border: de rand om padding en inhoud heen.
- Margin: ruimte buiten het element, tussen dit element en andere elementen.
article {
padding: 20px;
border: 2px solid black;
margin: 24px;
}
Onthoud de volgorde van binnen naar buiten: inhoud, padding, border, margin.
Actie — Bouw verder
- Werk op portfolio.html. Zet elk van je drie bestaande projecten in een eigen article: projectkop, beschrijving en afbeelding blijven bij elkaar. Behoud de section met de gezamenlijke h2 erboven.
- Geef de articles in style.css voorlopig 16px padding, een border van 1px met
var(--kleur-rand)en 24px margin-bottom. - Bekijk bij hetzelfde project wat binnenruimte, rand en buitenruimte zijn. Deze drie projectblokken blijven je oefenblokken en worden later kaarten.
02 - CSS-eenheden
Bij padding, margin, border en breedtes gebruik je vaak getallen met een eenheid. Die eenheid vertelt hoe de browser de waarde moet meten.
article {
padding: 20px;
width: 80%;
font-size: 1.2em;
}
pxbetekent pixels. Dit is een vaste maat.%betekent procent. De maat hangt af van de beschikbare ruimte.emhangt af van de tekstgrootte van het element.frkom je later tegen bij CSS Grid. Het betekent een fractie van de beschikbare ruimte.
Voor beginners is dit een handige basis: gebruik px voor vaste afstanden,
% voor flexibele breedtes en fr straks voor kolommen in CSS Grid.
Actie — Alleen oefenen
- Test op dezelfde article tijdelijk een breedte van 320px en daarna 80%. Maak het browservenster smaller en vergelijk.
- Probeer bij de tekstgrootte kort 1.2em. Een em is relatief aan de tekstgrootte; herstel daarna de eerdere tekstgrootte.
- Verwijder de tijdelijke width. De projecten moeten voor de volgende stappen weer de beschikbare breedte kunnen gebruiken.
- Extra: rem is relatief aan de tekstgrootte van het html-element. Je mag later rem gebruiken voor rustige afstanden, maar px blijft hier ook geschikt.
03 - Padding: ruimte aan de binnenkant
Padding is de ruimte aan de binnenkant van een element. Padding duwt de inhoud weg van de rand. Daardoor voelt tekst minder krap.
section {
background-color: lightyellow;
padding: 24px;
}
- Meer padding maakt een blok ruimer.
- Padding krijgt dezelfde achtergrondkleur als het element.
- Padding gebruik je vaak bij knoppen, tekstblokken, menu's en kaarten.
- Padding maakt geen afstand tot andere elementen. Daarvoor gebruik je margin.
Actie — Bouw verder
- Verhoog de padding van dezelfde drie articles naar 24px en behoud de eerder gekozen margin en border.
- Controleer dat de tekst verder van de rand komt terwijl de buitenruimte een afzonderlijke instelling blijft.
- Bekijk op Portfolio alle drie projecten; vervang de bestaande paddingwaarde in plaats van nog een article-regel te kopiëren.
04 - Margin: ruimte aan de buitenkant
Margin is de ruimte buiten een element. Margin maakt afstand tussen elementen.
h1 {
margin-bottom: 32px;
}
p {
margin-bottom: 16px;
}
- Margin is handig om onderdelen van een pagina uit elkaar te houden.
- Margin hoort niet bij de achtergrondkleur van het element.
- Gebruik margin voor afstand tussen koppen, alinea's, secties en afbeeldingen.
- Gebruik padding voor ruimte binnen een element.
Actie — Bouw verder
- Pas de margin-bottom van dezelfde articles aan totdat er duidelijk maar niet overdreven veel ruimte tussen de projecten zit.
- Vergelijk kort met padding: verander daarna alleen margin en herstel de gekozen padding van item 3.
- Behoud een rustige buitenafstand. Bij de flexboxkaarten vervangen we deze tussenruimte later door gap.
05 - Border: de rand van een element
Met border geef je een element een rand. Een border heeft meestal drie onderdelen:
dikte, stijl en kleur.
article {
border: 2px solid black;
}
2pxis de dikte van de rand.solidis de stijl van de rand.blackis de kleur van de rand.
section {
border: 1px solid gray;
}
aside {
border: 4px dashed orange;
}
footer {
border-top: 3px solid blue;
}
Een rand kan om het hele element staan, maar je kunt ook alleen één kant een rand geven.
Actie — Bouw verder
- Verfijn de border van de bestaande projectblokken: 1px solid en je kleurvariabele voor randen zijn een rustig begin.
- Alleen oefenen: probeer kort een dikkere of gestippelde rand en herstel daarna de rustige rand.
- Optionele afwerking die je mag behouden:
border-radius: 16px;rondt de hoeken af. Kies op alle pagina's dezelfde afwerking.
06 - Vier kanten instellen
Padding, margin en border kun je per kant instellen. De kantnamen zijn:
top, right, bottom en left.
section {
padding-top: 20px;
padding-right: 30px;
padding-bottom: 20px;
padding-left: 30px;
}
h1 {
margin-top: 0;
margin-bottom: 24px;
}
article {
border-left: 6px solid green;
}
padding-topgeeft binnenruimte aan de bovenkant.margin-bottomgeeft buitenruimte aan de onderkant.border-leftgeeft alleen links een rand.- Per kant instellen is duidelijk, maar soms wat lang.
Actie — Bouw verder
- Stel op dezelfde articles de padding tijdelijk per kant in: boven/onder 20px en links/rechts 24px.
- Probeer ook één border-left als accent op één bestaand inhoudelijk onderdeel; gebruik je accentvariabele.
- Behoud alleen accenten die bij je ontwerp passen. Je vier afzonderlijke paddinginstellingen vormen het startpunt voor item 7.
07 - Shorthand: korter schrijven
CSS heeft een korte schrijfwijze voor padding en margin. Dat heet shorthand.
section {
padding: 20px;
}
Eén waarde betekent: alle kanten krijgen dezelfde ruimte.
section {
padding: 20px 40px;
}
Twee waarden betekenen: eerst boven en onder, daarna links en rechts.
section {
padding: 10px 20px 30px 40px;
}
Vier waarden lees je met de klok mee: boven, rechts, onder, links.
padding: 20px;betekent overal 20px padding.padding: 20px 40px;betekent boven/onder 20px en links/rechts 40px.padding: 10px 20px 30px 40px;betekent boven 10px, rechts 20px, onder 30px, links 40px.- Deze shorthand werkt ook voor
margin.
Actie — Bouw verder
- Herschrijf de vier paddinginstellingen uit item 6 als
padding: 20px 24px;. - Verwijder de overbodige losse paddingregels en controleer dat de weergave gelijk blijft.
- Pas dezelfde korte schrijfwijze toe bij een bestaande margin waar dit overzicht geeft. Behoud het gekozen ontwerp.
08 - Width en box-sizing
Als je een breedte instelt met width, lijkt padding soms voor verwarring te zorgen.
Standaard telt de browser padding en border bovenop de breedte.
section {
width: 300px;
padding: 30px;
border: 2px solid black;
}
Dit element wordt breder dan 300px, omdat padding en border erbij komen. Daarom gebruiken veel websites deze regel:
* {
box-sizing: border-box;
}
- Met
box-sizing: border-boxblijven padding en border binnen de ingestelde breedte. - Dat maakt layouts voorspelbaarder.
- Deze regel zet je vaak bovenaan je CSS-bestand.
Actie — Bouw verder
- Geef één article tijdelijk
width: 320pxen vergelijk de totale breedte vóór en na* { box-sizing: border-box; }. - Laat de box-sizing-regel bovenaan style.css staan. Verwijder de tijdelijke article-width weer.
- Voeg voor je bestaande afbeeldingen
img { max-width: 100%; height: auto; }toe. Daardoor passen ze binnen hun blok zonder vervorming. - Deze box-sizing en flexibele afbeeldingen blijven onderdeel van je portfolio.
09 - Een blok centreren met margin auto
Met margin-left: auto en margin-right: auto kun je een blok horizontaal centreren.
Het element moet dan wel een breedte hebben.
main {
width: 800px;
margin-left: auto;
margin-right: auto;
}
Dit schrijf je vaak korter:
main {
width: 800px;
margin: 0 auto;
}
0betekent: boven en onder geen margin.autobetekent: links en rechts automatisch verdelen.- De browser verdeelt de overgebleven ruimte links en rechts gelijk.
Later leer je ook max-width. Dat is vaak beter dan een vaste breedte,
omdat een pagina dan makkelijker op kleinere schermen past.
Actie — Bouw verder
- Geef de bestaande main tijdelijk
width: 800pxenmargin: 0 auto;en bekijk het centreren in een breed venster. - Vervang daarna, voor de blijvende versie, width door
width: 100%; max-width: 1000px;en behoud margin auto. - Controleer breed en smal. Laat niet óók de vaste width:800px staan. Het binnenblok kan nu meegroeien tot zijn maximum.
10 - Margin collapse
Bij verticale margins kan iets gebeuren dat beginners vaak verwarrend vinden: margins kunnen samenklappen. Dat heet margin collapse.
h1 {
margin-bottom: 40px;
}
p {
margin-top: 20px;
}
Je verwacht misschien 60px ruimte tussen de kop en de alinea. In sommige situaties wordt dat geen 60px, maar 40px. De grootste margin wint dan.
- Dit gebeurt vooral bij verticale margins: boven en onder.
- Horizontale margins, links en rechts, klappen niet op dezelfde manier samen.
- Gebruik bij eenvoudige layouts vaak één richting voor verticale afstand, bijvoorbeeld vooral
margin-bottom. - Padding klapt niet samen. Padding blijft gewoon binnen het element.
Actie — Alleen oefenen
- Test bij een direct op elkaar volgende projectkop en alinea tijdelijk margin-bottom:40px op de kop en margin-top:20px op de alinea.
- Bekijk hoe de verticale afstand zich gedraagt. Padding telt op een andere manier mee en is een andere soort ruimte.
- Verwijder de proefwaarden. Kies daarna een voorspelbare basis, bijvoorbeeld koppen en alinea's met margin-top:0 en een rustige margin-bottom.
11 - Praktisch voorbeeld
In dit voorbeeld krijgt de pagina rustige ruimte, een gecentreerd hoofdgedeelte en duidelijke tekstblokken.
* {
box-sizing: border-box;
}
body {
margin: 0;
padding: 32px;
background-color: #eeeeee;
color: #222222;
}
main {
max-width: 800px;
margin: 0 auto;
}
article {
padding: 24px;
margin-bottom: 24px;
background-color: white;
border: 1px solid #cccccc;
}
h1 {
margin-top: 0;
margin-bottom: 24px;
}
p {
margin-top: 0;
margin-bottom: 16px;
}
bodykrijgt padding zodat de pagina niet tegen de rand van het scherm plakt.mainwordt gecentreerd metmargin: 0 auto.articlekrijgt padding aan de binnenkant.articlekrijgt margin aan de onderkant om afstand tot het volgende blok te maken.h1enpkrijgen gecontroleerde margins, zodat de ruimte voorspelbaar is.
Actie — Bouw verder
- Werk je bestaande pagina-afwerking bij: body krijgt 24px padding, de vijf hoofdonderdelen krijgen eigen binnenruimte en behouden hun dekkende vlakachtergrond.
- Behoud de flexibele main uit item 9. Geef de projectblokken dezelfde randen en binnenruimte en gebruik je kleurvariabelen.
- Houd koppen en alinea's rustig uit elkaar. Alleen als je wilt: geef de hoofdonderdelen dezelfde afgeronde hoeken als je kaarten.
- Controleer alle vier de pagina's; je maakt geen kopie van het complete voorbeeld over je eigen inhoud heen.
12 - Afronding van je bestaande site
Actie — Controleer en rond af
- Controleer je bestaande Portfolio: drie projectspecifieke articles binnen de section, elk met een kop, tekst en passende afbeelding.
- Controleer box-sizing, binnenruimte, buitenruimte, randen, flexibele afbeeldingen en een main die op smalle vensters past.
- Controleer ook Home, Over en Contact op dezelfde rustige afwerking. Ruim proefbreedtes en dubbele CSS-regels op.
- Behoud de vier pagina's en dezelfde style.css; je begint voor deze eindcontrole geen nieuw bestand.
Quiz
-
Vraag 1. Wat is padding?
Goed. Padding is binnenruimte.Niet goed. Padding zit aan de binnenkant van een element. -
Vraag 2. Wat is margin?
Goed. Margin is buitenruimte.Niet goed. Margin maakt afstand buiten het element. -
Vraag 3. Welke CSS-regel geeft een rand?
Goed.bordermaakt een rand.Niet goed. Een rand maak je metborder. -
Vraag 4. Wat betekent
padding: 20px;?
Goed. Eén waarde geldt voor alle kanten.Niet goed. Eén shorthand-waarde geldt voor alle kanten. -
Vraag 5. Wat betekent
margin: 10px 20px;?
Goed. Twee waarden zijn verticaal en horizontaal.Niet goed. Bij twee waarden is de eerste boven/onder en de tweede links/rechts. -
Vraag 6. In welke volgorde lees je vier shorthand-waarden?
Goed. Vier waarden lees je met de klok mee.Niet goed. De volgorde is boven, rechts, onder, links. -
Vraag 7. Waarom gebruiken veel websites
box-sizing: border-box?
Goed. Dat maakt breedtes voorspelbaarder.Niet goed.border-boxhelpt om breedtes voorspelbaar te houden. -
Vraag 8. Welke regel centreert een blok horizontaal als het een breedte heeft?
Goed.margin: 0 auto;verdeelt de ruimte links en rechts.Niet goed. Horizontaal centreren doe je vaak metmargin: 0 auto;. -
Vraag 9. Wat is margin collapse?
Goed. Verticale margins kunnen soms samenklappen.Niet goed. Margin collapse gaat over verticale margins die samenklappen. -
Vraag 10. Welke keuze is meestal logisch voor afstand tussen twee blokken?
Goed. Voor afstand tussen elementen gebruik je meestal margin.Niet goed. Margin is bedoeld voor buitenruimte tussen elementen. -
Vraag 11. Welke eenheid hoort later vooral bij CSS Grid?
Goed.frgebruik je bij CSS Grid om beschikbare ruimte te verdelen.Niet goed.fris de grid-eenheid voor fracties van beschikbare ruimte.