H4 - CSS toevoegen

00 - Eén gedeelde externe stylesheet

Je vier HTML-bestanden en afbeeldingen blijven behouden. Je vergelijkt inline, embedded en externe CSS, maar alle blijvende vormgeving komt in www/style.css. Elke tijdelijke stijlproef eindigt met het herstellen van die werkende basis.

01 - Structuur en vormgeving scheiden
  • HTML gebruik je voor de inhoud en structuur van een pagina.
  • CSS gebruik je voor de vormgeving van een pagina.
  • CSS is een andere taal dan HTML. Je schrijft dus geen HTML-tags, maar CSS-regels.
  • Dat betekent: HTML vertelt wat iets is, CSS bepaalt hoe het eruitziet.
  • Deze scheiding is een van de mooiste en krachtigste ideeën achter moderne websites.
  • Je kunt dezelfde HTML houden en alleen de CSS aanpassen om een website een andere uitstraling te geven.
  • Je kunt met één CSS-bestand meerdere pagina's tegelijk vormgeven.
  • Daardoor wordt je website overzichtelijker, makkelijker te onderhouden en beter uit te breiden.
<h1>Welkom op mijn website</h1>
<p>Dit is de eerste alinea.</p>
h1 {
    color: navy;
}

p {
    color: black;
}

Actie — Bouw verder

  1. Open de vier pagina's van je portfolio en kies een rustige basisstijl voor tekst, koppen en links.
  2. Noteer wat straks op elke pagina hetzelfde moet worden: lettertype, tekstkleur, achtergrond en navigatie.
  3. Je verandert nu alleen het plan; de bestaande HTML-inhoud blijft staan.
02 - Drie manieren om CSS toe te voegen

Je kunt CSS op drie manieren gebruiken:

  • Inline CSS
  • Embedded CSS
  • Externe CSS

Inline CSS

Inline CSS staat direct in een HTML-tag via het style-attribuut.

<p style="color: red;">Deze tekst is rood.</p>
  • Voordeel: snel om iets kleins te testen.
  • Voordeel: de stijl staat direct bij het element.
  • Nadeel: je HTML wordt rommelig.
  • Nadeel: je moet dezelfde stijl steeds opnieuw typen.
  • Nadeel: onderhoud wordt lastig bij grotere websites.

Embedded CSS

Embedded CSS staat in de <head> van je HTML-bestand, binnen een <style>-tag.

<head>
    <style>
        p {
            color: red;
        }
    </style>
</head>
  • Voordeel: handig voor één losse pagina.
  • Voordeel: je houdt de CSS iets beter bij elkaar.
  • Nadeel: de CSS geldt alleen voor dat ene HTML-bestand.
  • Nadeel: bij meerdere pagina's moet je dezelfde CSS kopiëren.

Externe CSS

Externe CSS staat in een apart bestand, bijvoorbeeld style.css. In je HTML-bestand zet je in de <head> een <link>-regel. Daarmee verwijs je vanuit de HTML naar een ander tekstbestand met CSS-regels.

<head>
    <link rel="stylesheet" href="style.css">
</head>
  • Voordeel: beste aanpak voor echte websites.
  • Voordeel: één CSS-bestand kan meerdere HTML-pagina's vormgeven.
  • Voordeel: je HTML blijft schoner en overzichtelijker.
  • Nadeel: je moet goed opletten dat het pad naar het CSS-bestand klopt.
  • Nadeel: je werkt met minimaal twee bestanden tegelijk.

Actie — Alleen oefenen

  1. Probeer op één bestaande alinea in index.html tijdelijk inline CSS met style="color: red;".
  2. Verwijder het style-attribuut. Probeer dezelfde kleur daarna via een style-blok in de head, zoals in de uitleg.
  3. Verwijder ook dat style-blok na de vergelijking. Vanaf item 3 schrijven we alle blijvende vormgeving uitsluitend in één extern bestand.
03 - CSS koppelen in de head
  • Een extern CSS-bestand koppel je in de <head> van je HTML-pagina.
  • Daarvoor gebruik je de <link>-tag.
  • Met rel="stylesheet" geef je aan dat het om een stylesheet gaat.
  • Met href="style.css" geef je het pad naar het CSS-bestand op.
<!doctype html>
<html lang="nl">
<head>
    <meta charset="UTF-8">
    <title>Mijn pagina</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Mijn website</h1>
    <p>Welkom op mijn pagina.</p>
</body>
</html>

Actie — Bouw verder

  1. Maak één style.css naast de vier HTML-bestanden in www.
  2. Voeg in de head van elk HTML-bestand <link rel="stylesheet" href="style.css"> toe.
  3. Werk voortaan in dit ene CSS-bestand. Er staan na de vorige oefening geen style-attributen of style-blokken meer in je HTML.
04 - Hoe een CSS-regel werkt

Een CSS-regel bestaat uit een selector, accolades, properties en waarden.

p {
    color: blue;
    font-size: 18px;
}
  • p is de selector. Daarmee kies je welk HTML-element je wilt vormgeven.
  • De accolades { en } vormen het blok met stijlinstellingen.
  • color en font-size zijn properties. Dat zijn eigenschappen die je wilt aanpassen.
  • blue en 18px zijn waarden.
  • Na elke property en waarde staat een puntkomma: ;.
  • De combinatie property: waarde; noemen we een declaratie.
selector {
    property: waarde;
}

Actie — Bouw verder

  1. Zet in de bestaande style.css één p-regel met font-size: 18px;.
  2. Controleer op Home én Over dat de tekstgrootte verandert. Zo zie je dat dezelfde stylesheet op meerdere pagina's werkt.
  3. Verander de waarde één keer en kies daarna een leesbare eindwaarde. Behoud de werkende koppelingen.
05 - Voorbeeld met font, kleur en uitlijning

In dit voorbeeld gebruik je alleen eenvoudige kleurnamen. Later kun je ook hex-codes, RGB of HSL gebruiken.

body {
    font-family: Arial, sans-serif;
    color: black;
    background-color: white;
}

h1 {
    color: navy;
    text-align: center;
}

p {
    color: darkgreen;
    font-size: 18px;
    text-align: left;
}

a {
    color: blue;
}
  • font-family bepaalt het lettertype.
  • color bepaalt de tekstkleur.
  • background-color bepaalt de achtergrondkleur.
  • font-size bepaalt de grootte van de tekst.
  • text-align bepaalt de uitlijning van tekst.
  • center centreert tekst.
  • left zet tekst links uitgelijnd.

Actie — Bouw verder

  1. Voeg de eenvoudige body-, h1- en linkopmaak uit de uitleg toe aan je bestaande style.css. Bewerk een bestaande regel als die er al is.
  2. Kies voorlopig rustige kleurnamen en laat links herkenbaar onderstreept. Het eigen kleurenpalet volgt in H5.
  3. Controleer alle vier de pagina's en behoud de eigen tekst en afbeeldingen; kopieer geen compleet nieuw HTML-bestand.
06 - Tekst en fonts opmaken

Met CSS kun je bepalen welk lettertype tekst gebruikt, hoe groot tekst is en hoeveel ruimte er tussen de regels zit. Dat heeft veel invloed op de leesbaarheid van een website.

body {
    font-family: Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

h1 {
    font-size: 32px;
    font-weight: bold;
    text-align: center;
}

p {
    font-style: normal;
}
  • font-family bepaalt het lettertype.
  • Arial is hier het eerste gewenste lettertype.
  • sans-serif is de fallback. Als Arial niet beschikbaar is, kiest de browser een schreefloos lettertype.
  • font-size bepaalt de tekstgrootte.
  • font-weight bepaalt hoe dik de tekst is, bijvoorbeeld normal of bold.
  • font-style bepaalt bijvoorbeeld of tekst normaal of schuin staat.
  • line-height bepaalt de regelhoogte. Meer regelhoogte maakt langere teksten vaak beter leesbaar.
  • text-align bepaalt de uitlijning van tekst.

Gebruik niet te veel verschillende lettertypes op één website. Eén lettertype voor de meeste tekst en eventueel een ander lettertype voor koppen is meestal genoeg.

Actie — Bouw verder

  1. Geef body een rustig lettertype, bijvoorbeeld system-ui, sans-serif, en line-height: 1.6.
  2. Pas kop- en tekstgroottes aan in de bestaande regels. Gebruik dezelfde typografie op alle pagina's.
  3. Controleer een langere tekst op Over en een projectbeschrijving op Portfolio. Behoud deze leesbare basis voor de volgende hoofdstukken.
07 - Van boven naar beneden lezen
  • CSS wordt van boven naar beneden gelezen.
  • Als twee regels even belangrijk zijn, wint meestal de onderste regel.
  • De onderste regel overschrijft dan de eerdere regel.
  • Dit noemen we de cascade.
p {
    color: red;
}

p {
    color: blue;
}

In dit voorbeeld wordt de tekst blauw, omdat de tweede regel later in het CSS-bestand staat.

  • Dit betekent niet dat je dezelfde selector steeds opnieuw moet gebruiken.
  • Probeer CSS overzichtelijk te houden en dubbele regels te voorkomen.
  • Als iets niet werkt, controleer dan of er later in het bestand nog een regel staat die jouw stijl overschrijft.

Actie — Alleen oefenen

  1. Voeg tijdelijk onder je bestaande p-regel een tweede p-regel met een andere kleur toe. Voorspel welke kleur je ziet.
  2. Verwissel de twee regels en controleer opnieuw: bij gelijke sterkte wint de laatste kleurdeclaratie.
  3. Verwijder de extra proefregel en herstel de gekozen basisstijl. Laat niet twee botsende kleurregels achter.
08 - Waarom werkt mijn CSS niet?
  • Soms schrijf je een CSS-regel, maar zie je geen verandering in de browser.
  • Controleer dan eerst of je CSS-bestand goed gekoppeld is in de <head>.
  • Controleer daarna of er lager in hetzelfde CSS-bestand nog een regel staat voor hetzelfde element.
  • Als twee regels even sterk zijn, wint meestal de onderste regel.
  • Controleer ook of er inline CSS op het HTML-element staat. Inline CSS is vaak sterker dan CSS uit je externe bestand.
<p style="color: red;">Deze tekst wordt rood.</p>
p {
    color: blue;
}

De tekst wordt rood, omdat de stijl direct in de HTML-tag staat. Voor beginners is het daarom beter om inline CSS zoveel mogelijk te vermijden en gewoon in style.css te werken.

Actie — Alleen oefenen

  1. Geef één bestaande alinea tijdelijk een inline kleur die botst met de p-kleur uit style.css.
  2. Controleer welke kleur wint. Verwijder daarna het style-attribuut en controleer dat de externe stijl weer geldt.
  3. Controleer ook de stylesheetverwijzing in alle vier de bestanden. De site gaat verder met uitsluitend externe CSS.
09 - Wat doet !important?
  • Met !important maak je een CSS-declaratie extra sterk.
  • Daardoor kan die regel andere CSS-regels overschrijven.
  • Dat kan handig lijken, maar het maakt je CSS sneller onduidelijk.
  • Gebruik !important daarom alleen als je echt geen betere oplossing hebt.
p {
    color: blue;
}

p {
    color: red !important;
}

In dit voorbeeld wordt de tekst rood. De tweede regel gebruikt !important en krijgt daardoor extra invloed.

p {
    color: red !important;
}

p {
    color: blue;
}

Ook in dit voorbeeld blijft de tekst rood. De blauwe regel staat wel lager, maar de rode regel heeft !important.

  • Voor beginners is het beter om eerst te controleren of je selector klopt.
  • Controleer ook of de volgorde van je CSS-regels logisch is.
  • Gebruik !important pas als laatste redmiddel.

Actie — Alleen oefenen

  1. Test tijdelijk twee p-kleurregels: één met !important en één zonder. Verwissel hun volgorde en vergelijk met item 7.
  2. Verwijder daarna !important en de extra proefregel. Herstel je gewone externe p-stijl.
  3. Gebruik !important niet als oplossing voor je portfolio; onderzoek een botsing liever aan de hand van selector en volgorde.
10 - Best practices voor CSS
  • Gebruik voor echte websites meestal een extern CSS-bestand.
  • Gebruik duidelijke bestandsnamen, zoals style.css of layout.css.
  • Zet je CSS-bestand op een logische plek, bijvoorbeeld naast je HTML-bestand of in een map css.
  • Houd HTML voor structuur en CSS voor vormgeving.
  • Gebruik inline CSS alleen om snel iets te testen.
  • Schrijf selectors zo eenvoudig mogelijk.
  • Voorkom veel dubbele regels.
  • Werk netjes met inspringing, zodat je CSS leesbaar blijft.

Actie — Controleer en rond af

  1. Ruim hetzelfde style.css op: groepeer regels voor basis, tekst en links en werk de inspringing bij.
  2. Verwijder overgebleven proeven, dubbele botsende regels en !important. Controleer dat de HTML geen inline of embedded CSS bevat.
  3. Open alle vier de pagina's: dezelfde basisvormgeving moet overal werken. Maak geen nieuwe stylesheet.
11 - CSS controleren met de W3C CSS validator

Voor CSS bestaat er ook een validator van W3C. Daarmee controleer je of je CSS-regels technisch goed zijn geschreven. Dat is handig als een kleur, lettertype, achtergrond of uitlijning niet werkt zoals je verwacht.

  • De CSS-validator controleert de schrijfwijze van je CSS.
  • De validator controleert niet of je ontwerp mooi is.
  • De validator kan fouten vinden zoals vergeten puntkomma's, verkeerde properties of fout gespelde waarden.
  • Bij lokale bestanden is Direct Input meestal het makkelijkst.

Gebruik de W3C CSS-validator om je bestaande bestanden te controleren.

Actie — Controleer en rond af

  1. Ga naar de W3C CSS-validator via de link hierboven en kies By direct input.
  2. Plak alleen de CSS uit de bestaande style.css, zonder HTML- of style-tags.
  3. Herstel echte fouten en controleer opnieuw. Bewaar dit ene werkende bestand; daarop bouwen alle volgende acties voort.

Controleer eerst de simpele dingen: staat er een dubbele punt na de property, een puntkomma na de waarde en een sluitende accolade aan het einde?

Quiz

Vraag 1. Waarvoor gebruik je HTML vooral?




Goed. HTML beschrijft de inhoud en structuur van de pagina.
Niet goed. HTML gebruik je vooral voor inhoud en structuur.

Vraag 2. Waarvoor gebruik je CSS vooral?




Goed. CSS bepaalt hoe HTML-elementen eruitzien.
Niet goed. CSS gebruik je voor vormgeving.

Vraag 3. Welke aanpak is meestal het beste voor een echte website?




Goed. Externe CSS houdt je website overzichtelijk en onderhoudbaar.
Niet goed. Voor echte websites gebruik je meestal een extern CSS-bestand.

Vraag 4. Welke tag gebruik je om een extern CSS-bestand te koppelen?




Goed. Met de <link>-tag koppel je een stylesheet.
Niet goed. Een extern stylesheet koppel je met <link rel="stylesheet" href="style.css">.

Vraag 5. Wat is in deze CSS-regel de selector?

p {
    color: blue;
}



Goed. De selector kiest welk HTML-element je vormgeeft.
Niet goed. In dit voorbeeld is p de selector.

Vraag 6. Wat is in color: blue; de property?




Goed. color is de eigenschap die je aanpast.
Niet goed. De property staat voor de dubbele punt.

Vraag 7. Welke kleur krijgt de tekst?

p {
    color: red;
}

p {
    color: blue;
}



Goed. Bij gelijke regels wint meestal de onderste regel.
Niet goed. CSS wordt van boven naar beneden gelezen, dus de onderste regel wint hier.

Vraag 8. Wat controleer je eerst als je externe CSS niet zichtbaar verandert?




Goed. Controleer eerst of de <link>-regel naar het juiste CSS-bestand verwijst.
Niet goed. Begin met controleren of je CSS-bestand goed gekoppeld is.

Vraag 9. Wat doet !important in CSS?




Goed. !important geeft een CSS-declaratie extra invloed.
Niet goed. !important maakt een CSS-declaratie extra sterk, maar gebruik het liever weinig.

Vraag 10. Welke property gebruik je om tekst te centreren?




Goed. Met text-align: center; centreer je tekst.
Niet goed. Voor tekstuitlijning gebruik je text-align.

Vraag 11. Welke property bepaalt het lettertype?




Goed. Met font-family kies je het lettertype.
Niet goed. Het lettertype stel je in met font-family.