Ruimte rond elementen
Wat ga je leren?
Je leert hoe je met padding en margin ruimte rond elementen instelt — en hoe je elementen groepeert in een <div> met een achtergrondkleur.
Theorie
Elk HTML-element heeft een onzichtbare "doos" om zich heen. Je kunt op twee plekken ruimte toevoegen:
padding— ruimte binnen het element, tussen de inhoud en de rand.margin— ruimte buiten het element, afstand tot andere elementen.
┌─────────────────────────────┐
│ margin │
│ ┌───────────────────────┐ │
│ │ padding │ │
│ │ ┌─────────────────┐ │ │
│ │ │ inhoud │ │ │
│ │ └─────────────────┘ │ │
│ └───────────────────────┘ │
└─────────────────────────────┘
Met background-color geef je het element een achtergrondkleur — zo zie je goed waar het element begint en eindigt.
De <div> tag
Een <div> is een onzichtbaar blok waarmee je andere elementen groepeert. Op zichzelf doet hij niets, maar via CSS kun je hem ruimte en kleur geven om groepen elementen visueel te scheiden.
<div>
<h2>Een titel</h2>
<p>Wat tekst eronder.</p>
</div>
Predict
Wat denk je dat er verandert als je padding: 20px verwijdert uit de CSS hieronder?
Klik hier voor het antwoord
De tekst raakt direct de rand van de gekleurde achtergrond. Zonder padding is er geen ademruimte tussen de inhoud en de rand van het blok.
Probeer het zelf!
Investigate
Experimenteer met de CSS:
- Wat gebeurt er als je
paddingvergroot naar40px? - Wat verandert er als je
marginvergroot naar40px? - Probeer
padding: 0— wat zie je? - Vervang
margin: 20pxdoormargin: 0— wat gebeurt er tussen de blokken?
Modify
Opdracht: Geef de blokken een lichtgele achtergrond en vergroot de padding zodat er meer ademruimte is.
Tip
Pas background-color aan en zet padding op bijvoorbeeld 30px.
Antwoord
div {
background-color: lightyellow;
padding: 30px;
margin: 20px;
}
Make
Opdracht: Bouw twee "kaartjes" onder elkaar. Elk kaartje is een <div> met een kop en een paragraaf. Gebruik background-color, padding en margin om ze er rustig en goed verdeeld uit te laten zien.
Tip
Eén div-regel in CSS werkt al voor allebei de kaartjes. Geef ze dezelfde stijl via de div-selector.
Antwoord
<!-- HTML -->
<div>
<h2>Eerste kaartje</h2>
<p>Met wat tekst erin.</p>
</div>
<div>
<h2>Tweede kaartje</h2>
<p>Met ook wat tekst erin.</p>
</div>
/* CSS */
div {
background-color: #e6f4ea;
padding: 25px;
margin: 15px;
}
Er gaat iets mis
margin en padding door elkaar halen
Een veelgemaakte fout is margin gebruiken als je padding bedoelt, of andersom. Onthoud:
- Wil je ruimte binnen het element (tussen inhoud en rand)? →
padding - Wil je ruimte buiten het element (afstand tot andere elementen)? →
margin
In Randen en afmetingen leer je hoe je deze blokken ook een rand en een vaste breedte geeft.