Les 3
Koppen, tekst, links en afbeeldingen
Tekstopmaak, hyperlinks en afbeeldingen met alt-tekst.
🎯 Na deze les kun je
- koppen en alinea's semantisch gebruiken
- interne en externe links maken
- afbeeldingen met goede alt-tekst plaatsen
Een webpagina is vooral tekst: koppen, alinea's en links naar andere pagina's. Daar komen afbeeldingen bij. In deze les leer je de vier elementen die je op bijna elke pagina gebruikt, en hoe je ze zo inzet dat ook zoekmachines en schermlezers je pagina snappen. Je maakt een receptpagina met een foto.
Koppen: h1 tot en met h6
HTML heeft zes niveaus van koppen: <h1> is de belangrijkste, <h6> de minst belangrijke.
<h1>Appeltaart</h1>
<h2>Ingrediënten</h2>
<h2>Bereiding</h2>
<h3>Het deeg</h3>
<h3>De vulling</h3>
Koppen vormen samen een inhoudsopgave van je pagina:
Appeltaart
├── Ingrediënten
└── Bereiding
├── Het deeg
└── De vulling
Regels:
- Eén
<h1>per pagina: het onderwerp van de pagina. - Sla geen niveaus over: na een
<h2>komt een<h3>, geen<h4>. - Kies een kop om wat hij betekent, niet om hoe groot hij is. De grootte pas je later aan met CSS.
Schermlezergebruikers springen van kop naar kop om een pagina te verkennen, zoals jij met je ogen de vette regels scant. Een kop die alleen "groot" is maar geen kop, of een niveau dat ontbreekt, maakt dat lastig.
Alinea's en nadruk
<p>Deze appeltaart is het recept van mijn oma. Hij is <em>niet</em> moeilijk,
maar je hebt wel <strong>een springvorm van 24 cm</strong> nodig.</p>
| Element | Betekenis | Standaard weergave |
|---|---|---|
<p> |
alinea | blok met ruimte erboven en eronder |
<em> |
nadruk (je zou het anders uitspreken) | cursief |
<strong> |
belangrijk | vet |
Gebruik ze om wat ze betekenen. Wil je alleen iets cursief voor de vorm, dan doe je dat met CSS.
Links
Een link maak je met <a> (anchor) en het attribuut href (hypertext reference):
<a href="https://www.voedingscentrum.nl">Voedingscentrum</a>
<a href="contact.html">Neem contact op</a>
<a href="#bereiding">Direct naar de bereiding</a>
<a href="mailto:sam@example.nl">Mail Sam</a>
| Soort | href |
Gaat naar |
|---|---|---|
| Extern (absoluut) | https://... |
een andere website |
| Intern (relatief) | contact.html |
een bestand op je eigen site |
| Ankerlink | #bereiding |
het element met id="bereiding" op deze pagina |
mailto:... |
het mailprogramma |
Voor een ankerlink geef je het doel een id:
<h2 id="bereiding">Bereiding</h2>
Een id moet uniek zijn op de pagina en mag geen spaties bevatten.
Goede linkteksten
Schermlezers kunnen alle links op een pagina als lijstje voorlezen. Bij "klik hier", "klik hier", "lees meer" weet niemand waar ze heen gaan.
<!-- slecht -->
Het recept staat <a href="recept.pdf">hier</a>.
<!-- goed -->
Download <a href="recept.pdf">het recept als pdf</a>.
Je kunt een link in een nieuw tabblad openen met target="_blank". Doe dat zelden: de bezoeker kan dat zelf kiezen (middelste muisknop, Ctrl-klik), en een nieuw tabblad verwart vooral mensen met een schermlezer.
Afbeeldingen
<img src="img/appeltaart.jpg" alt="Appeltaart met een rooster van deeg, net uit de oven" width="800" height="600">
<img>is een leeg element: geen sluittag.src: waar de afbeelding staat.alt: een alternatieve tekst voor wie de afbeelding niet kan zien: schermlezers, zoekmachines, en iedereen bij wie het plaatje niet laadt.widthenheight(in pixels, zonderpx): de browser reserveert dan alvast ruimte, zodat de tekst niet verspringt als de afbeelding binnenkomt.
Een goede alt-tekst
Vraag jezelf: wat zou ik zeggen als ik deze pagina aan de telefoon voorlees?
| Afbeelding | Slechte alt | Goede alt |
|---|---|---|
| Foto van het eindresultaat | "foto" of "IMG_2031.jpg" |
"Appeltaart met een rooster van deeg, net uit de oven" |
| Logo dat naar de homepage linkt | "logo" |
"Bakkerij De Korrel, naar de homepage" |
| Decoratieve krul | "krul" |
"" (leeg) |
Een lege alt="" betekent: dit plaatje is decoratie, sla het over. Laat het attribuut nooit helemaal weg; dan leest een schermlezer vaak de bestandsnaam voor.
Relatieve paden
Je site heeft deze mappen:
recepten/
├── index.html
├── appeltaart.html
├── img/
│ └── appeltaart.jpg
└── over/
└── index.html
| Vanuit | Naar | Pad |
|---|---|---|
appeltaart.html |
img/appeltaart.jpg |
img/appeltaart.jpg |
appeltaart.html |
index.html |
index.html |
over/index.html |
img/appeltaart.jpg |
../img/appeltaart.jpg |
over/index.html |
appeltaart.html |
../appeltaart.html |
.. betekent: één map omhoog. Een pad zonder / aan het begin is relatief aan het bestand waar de link in staat.
Webservers zijn vaak hoofdlettergevoelig. img/Appeltaart.JPG en img/appeltaart.jpg zijn daar twee verschillende bestanden. Gebruik in bestandsnamen alleen kleine letters, cijfers en streepjes, geen spaties.
Uitgewerkt voorbeeld: een receptpagina
<!doctype html>
<html lang="nl">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Appeltaart van oma · Recepten</title>
</head>
<body>
<h1>Appeltaart van oma</h1>
<p><a href="#bereiding">Direct naar de bereiding</a></p>
<img src="img/appeltaart.jpg" alt="Appeltaart met een rooster van deeg, net uit de oven" width="800" height="600">
<p>Een klassieke Hollandse appeltaart. Reken op <strong>1,5 uur</strong>, waarvan een uur in de oven.</p>
<h2>Ingrediënten</h2>
<p>300 g bloem, 200 g boter, 150 g suiker, 1 ei, 1 kg appels, kaneel.</p>
<h2 id="bereiding">Bereiding</h2>
<h3>Het deeg</h3>
<p>Kneed bloem, boter, suiker en het ei tot een soepel deeg.</p>
<h3>De vulling</h3>
<p>Schil de appels, snijd ze in stukjes en meng met kaneel en suiker.</p>
<p>Meer weten over gezond bakken? Kijk bij het
<a href="https://www.voedingscentrum.nl">Voedingscentrum</a>.</p>
</body>
</html>
Voorspel: wat gebeurt er als img/appeltaart.jpg niet bestaat? De browser toont een klein icoontje (of niets) met de alt-tekst. Daarom is een goede alt-tekst ook voor ziende bezoekers nuttig.
De ingrediënten staan nu in één alinea. Dat is niet ideaal; in de volgende les maak je er een lijst van.
Typische fouten
| Symptoom | Oorzaak |
|---|---|
| Afbeelding laadt niet | Pad klopt niet (hoofdletters, .. vergeten, spatie in de naam). Kijk in de devtools (F12, tabblad Console): daar staat 404 met het pad. |
| Ankerlink doet niets | De id bestaat niet, of je schreef href="bereiding" zonder #. |
Validator: An img element must have an alt attribute |
alt vergeten. |
Oefeningen
Oefening 1. Schrijf de koppenstructuur voor een pagina over je stad met de onderdelen: geschiedenis, bezienswaardigheden (met daaronder musea en parken) en bereikbaarheid.
Modelantwoord oefening 1
<h1>Utrecht</h1>
<h2>Geschiedenis</h2>
<h2>Bezienswaardigheden</h2>
<h3>Musea</h3>
<h3>Parken</h3>
<h2>Bereikbaarheid</h2>
Oefening 2. Schrijf een alt-tekst voor: (a) een foto van een team van vijf collega's voor het kantoor, op de pagina Over ons; (b) een icoontje van een telefoon naast het telefoonnummer.
Modelantwoord oefening 2
(a) alt="Ons team van vijf mensen voor het kantoor aan de Oudegracht". (b) alt="": het telefoonnummer staat er al als tekst, het icoon voegt niets toe.
Oefening 3. Je staat in blog/2026/recept.html. Wat is het pad naar img/logo.png in de hoofdmap?
Modelantwoord oefening 3
../../img/logo.png: twee keer omhoog (uit 2026, dan uit blog), dan naar img.
Lab: receptpagina met foto
- Maak een receptpagina met één
h1, minstens tweeh2's en een logische koppenstructuur. - Voeg een foto toe in een submap
img/, met een beschrijvendealt,widthenheight. - Voeg een ankerlink naar de bereiding toe en een externe link met een duidelijke linktekst.
- Valideer met validator.w3.org.
beetje check html-css-les3
Samenvatting
- Koppen
h1–h6vormen de inhoudsopgave; éénh1, geen niveaus overslaan. <p>voor alinea's,<em>en<strong>voor betekenis, niet voor opmaak.<a href>: extern, relatief,#ankerofmailto:; schrijf linkteksten die op zichzelf duidelijk zijn.<img>altijd metalt: beschrijvend, of leeg bij decoratie.- Relatieve paden met
..; kleine letters en geen spaties in bestandsnamen.
Volgende les: lijsten en tabellen.
Lab
Recept-pagina met foto
Klaar? Controleer je werk met:
$ beetje check html-css-les3