CSS¶
CSS (Cascading Style Sheets) bepaalt hoe HTML eruitziet: kleuren, lettertypen, ruimte, layout en responsiviteit. Op deze pagina leer je de basis die je nodig hebt om snel te starten en nette, consistente webpaginaβs te maken.
Doelen¶
- Begrijpen wat CSS is en hoe je het koppelt aan HTML
- Basisselectoren en de cascade/specifiteit toepassen
- Werken met het box model, typografie, kleuren en spacing
- Layout maken met Flexbox en een voorproefje van Grid
CSS toevoegen aan HTML¶
Er zijn drie manieren. Gebruik bij voorkeur een extern stylesheet.
1) Extern (aanrader)
2) Intern (vermijden)
3) Inline (ook vermijden)
Selectors: elementen, klassen, idβs en combinaties¶
- Element:
p
,h1
,a
- Klasse:
.card
voor herbruikbare stijlen - ID:
#header
voor unieke onderdelen - Combinaties:
nav a
,ul li a:hover
/* Element */
h1 { font-size: 2rem; }
/* Klasse */
.button { background: #0ea5e9; color: white; padding: 0.5rem 1rem; }
/* ID (spaarzaam gebruiken) */
#hero { background: #f1f5f9; }
/* Combinatie + state */
nav a:hover { text-decoration: underline; }
Het Box Model¶
Elk element is een doos: content + padding + border + margin.
.card {
box-sizing: border-box; /* aan te raden om berekeningen voorspelbaar te maken */
width: 300px;
padding: 1rem;
border: 1px solid #e2e8f0;
margin: 1rem auto; /* 1rem boven/onder, automatisch centreren links/rechts */
}
Kleuren en eenheden¶
- Kleuren:
#1f2937
,rgb(31 41 55)
,hsl(215 20% 65%)
- Eenheden:
px
,rem
(relatief aan root),em
(relatief aan parent),%
,vh/vw
Aanrader: gebruik rem
voor consistente schaal:
Typografie¶
body {
font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
color: #0f172a; /* tekstkleur */
}
h1 { font-size: 2rem; margin-bottom: 0.5rem; }
p { margin-bottom: 1rem; }
a { color: #0ea5e9; text-decoration: none; }
a:hover { text-decoration: underline; }
Spacing en layout-basics¶
.container {
max-width: 960px;
margin: 0 auto; /* centreren */
padding: 0 1rem; /* zijmarges op kleine schermen */
}
Flexbox (veelgebruikt)¶
.row {
display: flex;
gap: 1rem; /* ruimte tussen items */
align-items: center; /* kruis-as uitlijning */
justify-content: space-between; /* hoofd-as verdeling */
}
.col {
flex: 1; /* verdeel beschikbare ruimte */
}
HTML:
Grid¶
Responsief ontwerp¶
Media queries passen stijlen aan op schermbreedte.
Gebruik flex/grid met gap
, %
, fr
, rem
en max-width in plaats van vaste pixels waar mogelijk.
States, pseudo-classes en -elements¶
button:hover { background: #0284c7; }
button:disabled { opacity: 0.5; cursor: not-allowed; }
/* pseudo-elementen */
.badge::before {
content: "Nieuw"; /* voegt virtuele content toe */
display: inline-block;
background: #22c55e;
color: #064e3b;
font-size: 0.75rem;
padding: 0.125rem 0.375rem;
margin-right: 0.5rem;
border-radius: 0.25rem;
}
Best practices voor beginners¶
- Hou CSS in aparte bestanden en werk met herbruikbare classes
- Geef betekenisvolle classnamen (
.card
,.button-primary
) - Vermijd diepe geneste selectors; houd het simpel en voorspelbaar
- Gebruik
box-sizing: border-box
overal - Start mobiel-vriendelijk en schaal op met media queries
- Vermijd
!important
Debuggen en tools¶
- Browser DevTools: Inspecteer element, bekijk toegepaste regels en box model
- Gebruik formatter/linters (Prettier/Stylelint) in je editor
Verder lezen¶
- MDN Web Docs β
https://developer.mozilla.org/docs/Web/CSS
- Flexbox Cheatsheet β
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
- Grid Guide β
https://css-tricks.com/snippets/css/complete-guide-grid/