Spread → Web (HTML/CSS)
Theorie — HTML-elementen & semantiek
1) Wat is een HTML-element?
Een element bestaat meestal uit een openingstag, inhoud en een sluittag. Soms heeft de openingstag attributen met extra info (zoals href of alt).
<p>Dit is een paragraaf.</p>
<a href="https://voorbeeld.be">Dit is een link</a>
<img src="assets/img/cover.jpg" alt="Dansvloer met discobal"> <!-- geen sluittag -->
Block vs inline (kort):
- Block-elementen (bv.
p,h1,section) starten op een nieuwe regel en vormen “blokken”. - Inline-elementen (bv.
a,strong,em) lopen mee in de tekstregel.
2) Wat zijn semantische elementen?
Semantiek = betekenis. Een semantisch element vertelt wat iets is (niet alleen hoe het eruitziet). Dit helpt voor leesbaarheid, toegankelijkheid (screenreaders) en zoekmachines.
Voorbeelden (semantisch):
<header>— kop van de pagina/sectie<nav>— navigatie<main>— hoofdinhoud (1× per pagina)<section>— logische sectie met een kop<article>— zelfstandig stuk (bv. nieuwsbericht)<aside>— zijkader/streamer/extra info<footer>— voet<figure>+<figcaption>— beeld met bijschrift
Niet-semantisch:
<div>— “doosje” zonder betekenis<span>— inline “doosje” zonder betekenis
Tip: Gebruik div/span alleen als er geen beter semantisch element past.
Niet-semantisch vs semantisch (mini-voorbeeld)
Niet-semantisch: veel div's met classnamen
<div class="header">
<h1>Titel</h1>
</div>
<div class="content">
<div class="intro">Inleiding...</div>
<div class="streamer">“Opvallende quote”</div>
</div>
<div class="footer">Copyright</div>
Semantisch (beter):
<header>
<h1>Titel</h1>
</header>
<main>
<p class="lead">Inleiding...</p>
<aside class="streamer">“Opvallende quote”</aside>
</main>
<footer>Copyright</footer>
Kopjes: snelle regels
- 1×
h1per pagina (hoofdtitel). - Gebruik
h2,h3… voor subkoppen in logische volgorde. - Elke
sectionheeft idealiter een kop (bv.h2).
Theorie — CSS-variabelen (custom properties)
CSS-variabelen (custom properties) zijn “instelpunten” voor waarden zoals kleuren, lettertypes of maten.
Je zet ze meestal op :root (bovenaan), en gebruikt ze overal met var(...). Handig om snel je thema te wijzigen.
1. Variabelen definiëren
:root{
--kleur-primair: #ffd800; /* jouw hoofdkleur */
--kleur-secundair: #6c5ce7; /* tweede kleur */
--font-head: "Poppins", sans-serif;
--font-body: "Source Serif 4", serif;
--kolombreedte: 800px; /* breedte van main */
}
2) Variabelen gebruiken
body{
font-family: var(--font-body);
color: #f6f6f7;
background: #0e0e12;
}
.site-title{
font-family: var(--font-head);
color: var(--kleur-primair);
}
#content{
width: var(--kolombreedte);
margin: 0 auto; /* centreren */
}
3. Waarom variabelen?
- Snel aanpassen: één waarde wijzigen = overal effect.
- Consistent: dezelfde kleur/maat op alle plekken.
- Beginners-proof: je zoekt niet meer naar “waar stond die kleur ook alweer?”.
4) Kleine extra’s
- Scope: je kunt een variabele ook lager in de CSS overschrijven (bv. binnen
main). - Fallback:
var(--bestaat-niet, #ff00ff)gebruikt#ff00ffals de variabele ontbreekt. - Naamgeving: gebruik duidelijke namen (bv.
--kleur-primair,--kolombreedte).
5) Oefening (theorie → praktijk)
- Verander
--kleur-primairen bekijk wat er wijzigt (titel, links, streamer). - Zet
--kolombreedteop720pxen kijk hoe de tekstkolom smaller wordt. - Pas
--font-headen--font-bodyaan naar de gekozen Google/Adobe Fonts.
Project DISCO — van spread naar HTML
We bouwen een webpagina in VS Code, vertrekkend van je InDesign-spread (inleiding, bodytekst, alinea’s en een streamer). We werken met semantische HTML en een eenvoudige CSS met variabelen (zoals kleurstalen).
Stap 1 — Mappenstructuur
disco/
├─ index.html
└─ assets/
├─ css/
│ └─ style.css
└─ img/
└─ Afbeelding.jpg
Stap 2 — HTML boilerplate (index.html)
Maak index.html in VS Code en plak dit skelet. Let op: we koppelen style.css en gebruiken Google of Adobe Fonts.
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>DISCO — Van spread naar HTML</title>
<!-- Koppel je eigen CSS -->
<link rel="stylesheet" href="assets/css/style.css">
<!-- Google Fonts (voorbeeld) -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@700;800&family=Source+Serif+4:wght@400;700&display=swap" rel="stylesheet">
</head>
<body>
<header class="site-header">
<h1 class="site-title">DISCO — 70s/80s Night</h1>
</header>
<main id="content">
<p class="lead">Korte inleiding uit je spread. Deze alinea valt op en vat de pagina samen.</p>
<h2>Hoofdtitel / Sectietitel</h2>
<p>Hier komt je bodytekst (alinea 1).</p> Gebruik <p>voor elke alinea.</p>
<h3>Paragraaftitel</h3>
<p>Nog een alinea (alinea 2). Hou alinea’s kort en duidelijk.</p>
<!-- Streamer: opvallend tussenblok -->
<aside class="streamer">“Disco is ritme, kleur en sfeer.”</aside>
<!-- Afbeelding (optioneel; hero doen we later) -->
<figure>
<img src="assets/img/cover.jpg" alt="Dansvloer met discobal">
<figcaption>Sfeerbeeld van de avond (optioneel bijschrift).</figcaption>
</figure>
</main>
<footer class="site-footer">
<p>© 2025 DISCO Project — Klas 5</p>
</footer>
</body>
</html>
Stap 3 — CSS (assets/css/style.css)
We gebruiken CSS-variabelen (zoals stalen in InDesign). Content is gecentreerd
met margin: 0 auto en krijgt een basisbreedte.
/* ===== Variabelen (stalen) ===== */
:root{
--font-head: "Poppins", system-ui, sans-serif; /* koppen */
--font-body: "Source Serif 4", ui-serif, Georgia, serif; /* lopende tekst */
/* Pas aan aan je InDesign-kleurstalen */
--kleur-achtergrond: #0e0e12;
--kleur-tekst: #f6f6f7;
--kleur-primair: #ffd800; /* bv. geel */
--kleur-secundair: #6c5ce7; /* bv. paarsblauw */
--maat-basis: 16x; /* basis lettergrootte body */
--kolombreedte: 800px; /* basisgrootte van de tekstkolom (main) */
--rand: 1px; /* dunne rand voor het contentvlak */
--ruimte: 16px; /* standaard tussenruimte */
}
/* ===== Reset & basis ===== */
*{
box-sizing: border-box;
}
html, body{
margin:0; padding:0;
}
body{
background: var(--kleur-achtergrond);
color: var(--kleur-tekst);
font-family: var(--font-body);
font-size: var(--maat-basis);
line-height: 1.6;
}
/* ===== Header/Footer (smal als de content) ===== */
.site-header, .site-footer{
max-width: var(--kolombreedte);
margin: 0 auto; /* centreren */
padding: 24px var(--ruimte);
}
/* ===== MAIN centreren + basisgrootte ===== */
#content{
width: var(--kolombreedte); /* basisgrootte */
max-width: 92vw; /* smal op kleine schermen */
margin: 0 auto; /* CENTREREN */
padding: 24px var(--ruimte); /* eenvoudige padding */
background: #14141b; /* subtiele achtergrond */
border: var(--rand) solid rgba(255,255,255,.12);
}
/* ===== Typografie ===== */
.site-title{
font-family: var(--font-head);
font-weight: 800;
letter-spacing: .02em;
font-size: 32px; /* eenvoudig, geen clamp() */
margin: 0;
color: var(--kleur-primair);
}
h2, h3{
font-family: var(--font-head);
margin: 24px 0 8px;
line-height: 1.3;
}
h2{
font-size: 24px;
}
h3{
font-size: 20px;
}
.lead{
font-size: 20px;
color: #e8e8ec;
margin: 0 0 16px;
}
/* ===== Streamer (opvallend tussenblok) ===== */
.streamer{
background: var(--kleur-primair);
color: #111;
padding: 12px 16px;
margin: 20px 0;
border-left: 6px solid var(--kleur-secundair);
font-weight: 700;
}
/* ===== Afbeeldingen en bijschrift ===== */
figure{
margin: 16px 0;
}
img{
display: block;
max-width: 100%;
height: auto;
}
figcaption{
font-size: 14px;
color: #bfc0c7;
margin-top: 4px;
}
/* ===== Links ===== */
a{
color: var(--kleur-primair); text-decoration: none;
}
a:hover, a:focus{
text-decoration: underline;
}
Stap 4 — Tekst plakken
- Open het gedownloade tekstbestand op je computer en kopieer de inhoud.
- Plak in
index.htmlbinnen<main id="content">en verdeel in alinea’s (<p>…</p>). - Maak kopjes met <h2> en <h3> en laat de streamer staan of vervang door je eigen quote.
Stap 5 — Kleurstalen & fonts aanpassen
- Vervang
--kleur-primairen--kleur-secundairdoor de kleuren uit je InDesign-spread. - Kies Google/Adobe Fonts die horen bij je spread en vul
--font-headen--font-bodyin.
Stap 6 — Checklist
index.htmlenassets/css/style.cssbestaan en zijn gekoppeld.#contentis gecentreerd metmargin: 0 autoen heeft een basisbreedte.- Semantische tags:
header,main,footer; kopjes en alinea’s zijn correct. - CSS-variabelen worden gebruikt voor kleuren/typografie.
- (Optioneel) Afbeelding met
<figure>/<figcaption>en correctealt.
Voorbeelden
Onderstaande link toont een voorbeeld van een uitgewerkte webpagina op basis van deze opdracht.
Leerlingvoorbeeld: DISCO — Van spread naar HTML