H1 - HTML Layout

01 - De verplichte HTML-structuur
  • Elke HTML-pagina begint met een vaste basisstructuur.
  • De belangrijkste onderdelen zijn <html>, <head> en <body>.
  • Elke website heeft deze drie onderdelen en omdat ze tussen < en > karakters staan, noemen we het een tag.
  • Doorgaans is er een open- en sluit-tag. De sluit-tag wordt gekenmerkt door de extra /.
  • Een set van tags vormt een container waar je iets in kunt zetten.
<html>
    <head>
        <title>Het is feest</title>
    </head>
    <body>
        Een website over feest.
    </body>
</html>

  • Een tag is een HTML-codewoord en is niet zichtbaar op de website.
  • In de <html>-container komt alle code van de website. Het is de buitenste container.
  • In de <head>-container zet je informatie over de pagina, zoals de titel.
  • In de <body>-container zet je alles wat de bezoeker echt op het scherm ziet.
  • Als je deze structuur hebt, voeg je alleen nog regels code toe in de <head> of in de <body>.

Actie

  • Maak nu zelf een HTML-bestand - in je editor - met deze structuur.
  • Sla het bestand op met de naam index.html.
  • Laat het bestand open in je editor, maar open het ook in je browser en bekijk het resultaat.
  • Verander nu iets aan de tekst in de <body> en sla het op.
  • Gebruik de refreshknop in de browser om het bijgewerkte resultaat te zien.
02 - h1, p en title
  • De <h1> is de belangrijkste kop op de pagina.
  • Het staat voor "header" en is de titel van de pagina.
  • Meestal gebruik je een <h1> maar één keer per pagina.
  • De <p> staat voor paragraaf. Dus voor een gewone alinea met tekst.
  • De <title> staat in de <head>.
  • Wat in de <head> staat, zie je niet op de pagina.
  • De <title> zie je bovenin misschien wel in het browser-tabblad.
<head>
    <title>Het is feest</title>
</head>
<body>
    <h1>Een website over feestdagen</h1>
    <p>Ben je ook toe aan een feestdag? Verplicht vrij of is dat niks voor jou?</p>
</body>

Actie

  • Pas je website aan en voeg een <h1> en <p> toe.
03 - strong en em gebruiken
  • Met <strong> geef je aan dat tekst extra belangrijk is.
  • Met <em> leg je nadruk op een woord of een stuk tekst.
  • Je mag ze samen gebruiken, maar dan moeten ze netjes als containers in elkaar staan.
  • Goed voorbeeld:
<p>Kerstmis is een <strong>echt feest</strong>.</p>
<p>Maar <em>eet niet te veel</em>, dat is niet goed.</p>
<p>Hoe vier jij <strong><em>Oud en Nieuw</em></strong>?</p>
  • Fout voorbeeld:
<p>Kerst is <strong><em>samen zijn</strong></em>.</p>
  • In het foute voorbeeld worden de tags in de verkeerde volgorde gesloten.
  • Wat je opent, moet je ook in omgekeerde volgorde weer sluiten.

Actie

  • Pas je eigen pagina aan en maak ergens een woord <strong>.
  • Maak op een andere plek ook een woord <em>.
  • Probeer daarna ook een voorbeeld waarbij je <strong> en <em> samen gebruikt.
04 - Waarvoor zijn h2 tot en met h6?
  • De <h1> is de hoofdkop van de pagina.
  • De <h2> is een subkop onder de <h1>.
  • De <h3> is weer een subkop onder de <h2>.
  • Zo kun je doorgaan tot en met <h6>.
  • Hoe lager het getal, hoe belangrijker de kop meestal is.
  • Een <h1> of <h2> is dus belangrijker dan een <h5> of <h6>.
  • Een <h6> is het laagste niveau en wordt meestal gezien als de minst belangrijke kop in de structuur.
  • Je kunt dit zien als subparagrafen of hoofdstukniveaus, bijvoorbeeld: H1, H1.1, H1.4.6 of H1.6.4.3.
<h1>Feestdagen</h1>
    <h2>Winterfeestdagen</h2>
        <h3>Kerstmis</h3>
        <h3>Oud en Nieuw</h3>
    <h2>Lentefeestdagen</h2>
        <h3>Pasen</h3>
            <h4>Paastradities</h4>

Actie

  • Voeg onder je <h1> minstens twee <h2>-subkoppen toe.
  • Zet onder een van die <h2>-koppen ook een <h3>.
  • Kijk of je de structuur van je pagina nu duidelijker vindt.
05 - Content in containers zetten

Een HTML-pagina bestaat vaak uit stukken inhoud. Je kunt die stukken zien als doosjes. In zo'n doosje zet je bijvoorbeeld een kop, een alinea, een afbeelding of later een link.

  • Een container heeft meestal een openingstag en een sluit-tag.
  • Alles wat tussen die twee tags staat, zit in die container.
  • Containers helpen om je pagina logisch op te bouwen.
  • Een container mag ook weer andere containers bevatten.
<section>
    <h2>Winterfeestdagen</h2>
    <p>In de winter vieren veel mensen Kerstmis en Oud en Nieuw.</p>
</section>

Belangrijk: een container moet volledig binnen een andere container staan. Je mag containers dus niet door elkaar heen openen en sluiten.

  • Goed genest:
<section>
    <article>
        <h2>Kerstmis</h2>
        <p>Kerstmis is een bekend winterfeest.</p>
    </article>
</section>
  • Fout genest:
<section>
    <article>
        <h2>Kerstmis</h2>
    </section>
</article>

In het foute voorbeeld wordt <section> gesloten terwijl <article> nog open staat. Dat is alsof je een doos dichtmaakt terwijl er nog een kleinere doos half uitsteekt.

Semantische HTML5-tags

HTML5 heeft tags waarmee je niet alleen een doosje maakt, maar ook vertelt wat voor soort inhoud erin zit. Dat noemen we semantische tags. Semantisch betekent: de tag heeft betekenis.

  • <header>: bovenkant of introductie van een pagina of onderdeel.
  • <nav>: navigatie, meestal een menu met links.
  • <main>: de hoofdinhoud van de pagina.
  • <section>: een duidelijk onderdeel of hoofdstuk op een pagina.
  • <article>: een zelfstandig stuk inhoud, zoals een nieuwsbericht of kaart.
  • <aside>: aanvullende inhoud naast de hoofdinhoud.
  • <footer>: onderkant van een pagina of onderdeel.
<header>
    <h1>Feestdagen</h1>
</header>

<nav>
    <a href="index.html">Home</a>
    <a href="contact.html">Contact</a>
</nav>

<main>
    <section>
        <h2>Winterfeestdagen</h2>
        <article>
            <h3>Kerstmis</h3>
            <p>Kerstmis is een feest in december.</p>
        </article>
    </section>
</main>

<footer>
    <p>Gemaakt door Mike.</p>
</footer>
  • De browser laat deze tags vaak gewoon als blokken zien.
  • De winst zit vooral in de duidelijke structuur van je HTML.
  • Later kun je deze containers ook met CSS vormgeven.
  • Gebruik een tag die past bij de inhoud. Gebruik dus <nav> voor navigatie en <main> voor de hoofdinhoud.

Actie

  • Zet je zichtbare inhoud in een <main>-container.
  • Maak daarbinnen minstens één <section>.
  • Zet in die <section> een kop en een alinea.
  • Controleer of alle containers in de juiste volgorde worden gesloten.
06 - Meta description en meta keywords
  • In de <head> kun je meta-tags plaatsen.
  • De meta description geeft een korte beschrijving van de pagina.
  • Die beschrijving kan bijvoorbeeld in zoekresultaten zichtbaar worden.
  • De meta keywords-tag werd vroeger gebruikt om zoekwoorden op te geven.
  • Tegenwoordig gebruiken zoekmachines die tag bijna niet meer, maar technisch kom je hem nog wel tegen.
<meta name="description" content="Ontdek leuke en verrassende feiten over feestdagen.">
<meta name="keywords" content="feestdagen, kerst, pasen, oud en nieuw">

Actie

  • Voeg in de <head> van je eigen pagina een meta description toe.
  • Schrijf daarin in één zin waar jouw pagina over gaat.
  • Houd de description kort en duidelijk, en maak hem niet langer dan 150 karakters.
  • Voeg daarna ook een meta keywords-tag toe met een paar passende zoekwoorden.
07 - Controleren met de W3C Validator

Actie

  • Controleer je code bij W3C.
  • Gebruik daarvoor deze link: W3C Markup Validator.
  • Daarmee zie je of je code voldoet aan de HTML-standaard.
  • Als je je pagina op dit punt controleert, krijg je nu nog drie fouten:
  • Er ontbreekt een doctype
  • Er ontbreekt een UTF-8-instelling
  • Het lang-attribuut ontbreekt in de <html>-tag
  • Die controle is nuttig, omdat fouten in de basisstructuur later vaak voor vreemde problemen zorgen.
  • Door bovenaan de pagina <!doctype html> te zetten, los je de eerste fout op. Hiermee geef je aan dat het document een HTML5-document is.
  • Door in de <head> een meta charset-regel toe te voegen, los je de tweede fout op. Daarmee geef je aan welke tekencodering de pagina gebruikt.
  • Door lang="nl" toe te voegen aan de <html>-tag, los je de derde fout op. Daarmee geef je aan dat dit een Nederlandstalige website is.

Actie

  • Valideer je code opnieuw zodat de basis van je HTML goed is.
  • Zo kan het eindresultaat eruit zien:
<!doctype html>
<html lang="nl">
<head>
    <meta charset="UTF-8">
    <meta name="description" content="Ontdek leuke en verrassende feiten over feestdagen.">
    <meta name="keywords" content="feestdagen, kerst, pasen, oud en nieuw">
    <title>Feest website</title>
</head>
<body>
    <header>
        <h1>Welkom op mijn feest website</h1>
    </header>

    <main>
        <section>
            <h2>Dag van de arbeid</h2>
            <p>Is de dag van de arbeid ook een feestdag?
            Of beleef je het als een dag van de <em>slavernij</em>?</p>
        </section>

        <section>
            <h2>Bijzonder</h2>
            <p>De Armeense kerk in Jeruzalem viert Kerstmis op 19 januari
            en in Armenië vieren ze Kerstmis op 6 januari.</p>
        </section>
    </main>
</body>
</html>
Quiz

Vraag 1. Welke drie onderdelen vormen de vaste basis van een HTML-pagina?




Goed. Dit is de vaste basisstructuur van een HTML-document.
Niet goed. De vaste basis is <html>, <head> en <body>.

Vraag 2. Waarvoor gebruik je de <head>?




Goed. In de <head> staat informatie over de pagina.
Niet goed. De <head> is voor informatie over de pagina, niet voor zichtbare inhoud.

Vraag 3. Waarvoor gebruik je de <body>?




Goed. In de <body> staat de zichtbare inhoud.
Niet goed. Alles wat zichtbaar is op de pagina staat in de <body>.

Vraag 4. Wat is de functie van de <title>-tag?




Goed. De <title> zie je normaal bovenin het tabblad van de browser.
Niet goed. De <title> bepaalt de titel van het browser-tabblad.

Vraag 5. Waarvoor gebruik je een <h1>?




Goed. De <h1> is de belangrijkste kop van de pagina.
Niet goed. De <h1> is bedoeld voor de hoofdkop.

Vraag 6. Welke tag gebruik je voor een gewone alinea tekst?




Goed. De <p> gebruik je voor een paragraaf.
Niet goed. Voor een gewone alinea gebruik je <p>.

Vraag 7. Welke combinatie van strong en em is goed genest?




Goed. Tags moeten in omgekeerde volgorde gesloten worden.
Niet goed. De juiste nesting is <strong><em>...</em></strong>.

Vraag 8. Waarvoor gebruik je <h2> tot en met <h6>?




Goed. Deze headings geven structuur aan de inhoud van de pagina.
Niet goed. <h2> t/m <h6> gebruik je voor tussenkoppen en subkoppen.

Vraag 9. Wat betekent goed geneste HTML?




Goed. Containers moeten volledig binnen elkaar staan.
Niet goed. Wat je opent, moet je netjes binnen dezelfde structuur sluiten.

Vraag 10. Welke regel hoort in de <head> om UTF-8 in te stellen?




Goed. Zo stel je de tekencodering van de pagina in.
Niet goed. De juiste regel is <meta charset="UTF-8">.