Websites met stijl
14. CSS: kleur
In dit hoofdstuk
Plaats van stijlregels
In de vorige hoofdstukken heb je de webpagina's gmaakt. Met de html-tags heb je de structuur aangegegeven: een kop, een menu, een article.
Vanaf nu gaan we ons bezig houden met de vormgeving van al die elementen. Dat gebeurt met stijlregels.
Stijlregels kunnen op 3 plaatsen staan:
- in een apart bestand, een stijlblad.
- Als stijlblok in de head van een html-element.
- Als inline stijl in de begin-tag van een element.
Stijlblad
Het stijlblad is een apart bestand met stijlregels. In elk html-document van de website staat een verwijzing naar dat bestand.
Daardoor wordt de opmaak van de hele website bepaald door dat stijlblad.
Een stijlblad is daarom verreweg de meestgebruikte plaats voor stijlregels.
Stijlblok
Een enkele keer heeft (een deel van) één webpagina een afwijkende opmaak.
Dan kunnen stijlregels voor die opmaak in een stijlblok in de head van dat ene document worden gezet, tussen de tags <style> en </style>
Inline stijl
Als één enkel element op één webpagina een afwijkende opmaak heeft kan de stijlregel voor dat element geplaatst worden in de begin-tag van dat element.
Opmerkingen
- Voor bijzonderheden: zie de naslag.
- In deze cursus maken we eigenlijk alleen gebruik van een stijlblad. Alleen in hoofdstuk 37 wordt gebruik gemaakt van een stijlblok.
Terschelling.css aanmaken
In de webpagina's die je gemaakt hebt staat de verwijzing naar het stijlblad terschelling.css in de map css.
Dat stijlblad ga je nu aanmaken:
- Open de editor.
- Begin een nieuw leeg bestand.
Gebruik niet het bestand nieuw.html. Dat is niet echt leeg; het is bestemd als html webpagina.
- Sla het helemaal lege bestand op in de map terschelling/css onder de naam terschelling.css.
- Sluit het bestand niet.
Experiment 1: alle tekst een kleurtje
Voordat we beginnen met de definitieve opmaak van de website, experimenteren we wat met enkele opmaakregels, om te zien hoe dat allemaal werkt.
Als eerste experiment voorzien we de tekst van een kleurtje.
Bekijk de startpagina van de website van Terschelling nog eens in de browser.
- Tik in het lege stijlblad in de editor het volgende in:
(De kleuren zijn zoals je die ziet in Notepad++)
figuur 1
body {color: brown;}
- Sla het bestand terschelling.css op, ga weer naar de browser
en klik op de verversknop
van je browser om de veranderingen te zien.
Bijna alle tekst is nu bruin geworden. (Alleen de links blijven blauw en onderstreept.).
Is de tekst bij jou niet bruin geworden?
Dan heb je waarschijnlijk ergens een foutje in je stijlblad gemaakt,
zoals gewone haakjes ( ) i.p.v. accoladen { },
een vergeten : of ;.
Het kan ook zijn dat je het stijlbestand onder de verkeerde naam of in de verkeerde map hebt opgeslagen,
of dat op je op de html-pagina's een tikfout hebt gemaakt in de verwijzing naar het stijlblad.
Controleer alles nauwkeurig en verbeter foutjes.
- Bekijk ook de pagina's polder, duinen en wad. Je ziet dat ook daar de tekst bruin is.
Dat is het mooie van een stijlblad: alle pagina's van je website in één keer dezelfde opmaak!
- Experimenteer nog wat: verander in het stijlblad de kleur brown in een andere kleur.
(Enkele kleurnamen: aqua, black, blue, brown, cyan, gold, green, orange, red, steelblue, tan, yellow, white.)
Sla het stijlblad weer op en bekijk de webpagina opnieuw in je browser (denk aan het verversen).
Opmerking
- In de stijlregel staat aangegeven dat de bruine tekst-kleur voor het element body geldt.
En omdat de body de hele webpagina omvat (alle andere elementen staan tussen de tags <body> en </body>), geldt de bruine kleur voor de hele webpagina.
Kijk bij de tips hoe je veranderingen die je aanbrengt in het stijlblad het best kunt bekijken.
Experiment 2: een achtergrondkleur aanbrengen
De vorm van een stijlregel
Bekijk nog eens de stijlregel van figuur 2:
body {color: brown;
background-color: tan;}
Afspraak:
Woorden die schuin gedrukt staan, zoals hierboven eigenschap en waarde, moeten niet letterlijk ingetikt.
Ze geven aan wat voor soort info je daar moet geven.
Experiment 3: Een aparte kleur voor de h1-koppen
- Zet onder de eerste stijlregel in je stijlblad de regel van figuur 4.
Laat tussen beide stijlregels een regel leeg.
figuur 4
h1 {color: grey;
background: orange;
}
- Sla het stijlblad op en bekijk de webpagina's in je browser.
Het resultaat zal je niet verrassen: de h1-koppen hebben grijze letters op een oranje achtergrond.
- Merk op dat de oranje achtergrond over de hele breedte van het scherm loopt.
Dat komt omdat h1 (evenals h2...h6) een blok-element is. Een blok-element neemt altijd de hele beschikbare breedte in beslag.
Er zijn blok-elementen en inline-elementen. Blok-elementen vullen in principe de hele beschikbare breedte. Er kan dan ook maar één blok-element op een regel.
De breedte van inline-elementen wordt bepaald door de inhoud. Er kunnen verschillende inline-elementen op een regel, als de inhoud van de elementen dat toelaat.
Experimenteer gerust nog wat met dit stijlblad.
Enkele kleurnamen zijn: aqua, black, blue, brown, cyan, gold, green, orange, red, steelblue, tan, yellow, white.
Opmerking
- De volgorde van de stijlregels maakt meestal niets uit. Het is wel verstandig om ze in een logische volgorde te zetten,
om ze sneller te kunnen vinden als je een verandering aanbrengt. Zet bijvoorbeeld het grootste element (body) voorop, daarna de elementen die in de body staan.
Oefening
- Hyperlinks worden standaard blauw weergegeven. Maak ze met een stijlregel rood.
Tip: het hyperlink element is a.
- Controleer of je stijlregel werkt.
Kleur
Kleurnamen
Er zijn verschillende manieren om in css kleuren te specificeren.
Je hebt al kennis gemaakt met kleurnamen.
Deze methode is handig voor veelgebruikte kleuren als zwart, wit, rood, blauw (kleurnamen: black, white, red, blue).
Er zijn echter meer dan 16 miljoen kleurennuances waarvan er maar 140 een naam hebben. De methode is daardoor beperkt bruikbaar.
(Zie www.w3schools.com/colors/colors_names.asp voor een overzicht van alle namen.)
Rood-Groen-Blauw
Enkele veelgebruikte methoden definiëren een kleur als een mengsel van rood, groen en blauw.
Deze methoden staan dicht bij de manier waarop kleuren op een TV of monitor worden getoond.
Elk beeldpuntje (engels: pixel) bevat een rood, een groen en een blauw lampje waarvan de lichtsterkte kan worden aangepast. De lichtsterkte van elk van die lampjes bepaalt de helderheid en de kleur.
Nadeel van deze methoden is dat je uit de helderheid van rood, blauw en groen niet gemakkeijk de resulterende kleur kunt afleiden. Daarvoor is nogal wat ervaring nodig.
Ik zou bv.niet meteen zien dat 100% rood, 85% groen en 0% blauw goudgeel oplevert.
En als je een kleur een beetje wilt aanpassen door bijvoorbeeld wat meer of minder groen te nemen, dan veranderen de kleur, de helderheid en de verzadiging alle drie.
(Verzadiging: Een verzadigde kleur is hard, een onverzadigde kleur zacht, pastel.)
Wil je zo'n methode gebruiken, kijk in de naslag kleur bij RGB kleuren
of Hexadecimale kleuren.
HSL-kleuren
Het hierboven genoemde nadeel van de rood-groen-blauw methoden van kleurdefinitie is ondervangen in de nieuwe hsl-methode. Hierbij kun je afzonderlijk de kleur, verzadiging en helderheid instellen.
hsl staat voor hue (tint), saturation (verzadiging), lightness (helderheid)
Deze methode zullen we dan ook in de cursus gebruiken. Hieronder vind je alles wat je weten moet over hsl. Over andere kleurspecificatie methoden vind je meer in de css-naslag bij kleuren
Je geeft een kleur op als hsl(hue, saturation%, lightness%);.
Voorbeeld: in hsl(30, 100%, 50%) is de hue (tint) 30, saturation (verzadiging) 100% en lightness (helderheid) 50%.
- Hue is een getal tussen 0 en 360 (grenzen inbegrepen) dat de tint (kleur) aangeeft (zie figuur 5):
figuur 5: Tint (hue)
- Saturation is een percentage dat de verzadiging aangeeft.
100% is de volle, harde kleur, lagere percentages zijn fletser, zachter. 0% is een grijstint:
figuur 6: Verzadiging (Saturation)
hsl(0,100%,50%)
hsl(0,75%,50%)
hsl(0,50%,50%)
hsl(0,25%,50%)
hsl(0,0%,50%)
hsl(60,100%,50%)
hsl(60,75%,50%)
hsl(60,50%,50%)
hsl(60,25%,50%)
hsl(60,0%,50%)
hsl(120,100%,50%)
hsl(120,75%,50%)
hsl(120,50%,50%)
hsl(120,25%,50%)
hsl(120,0%,50%)
hsl(180,100%,50%)
hsl(180,75%,50%)
hsl(180,50%,50%)
hsl(180,25%,50%)
hsl(180,0%,50%)
hsl(240,100%,50%)
hsl(240,75%,50%)
hsl(240,50%,50%)
hsl(240,25%,50%)
hsl(240,0%,50%)
hsl(300,100%,50%)
hsl(300,75%,50%)
hsl(300,50%,50%)
hsl(300,25%,50%)
hsl(300,0%,50%)
- Lightness is een percentage dat de helderheid aangeeft.
100% is wit, 0% is zwart. Een helderheidspecentage (lightness) van 50% geeft de volle kleur:
figuur 7: Helderheid (Lightness)
hsl(0,100%,100%)
hsl(0,100%,75%)
(0,100%,50%))
hsl(0,100%,25%)
hsl(0,100%,0%)
hsl(60,100%,100%)
hsl(60,100%,75%)
(60,100%,50%))
hsl(60,100%,25%)
hsl(60,100%,0%)
hsl(120,100%,100%)
hsl(120,100%,75%)
(120,100%,50%))
hsl(120,100%,25%)
hsl(120,100%,0%)
hsl(180,100%,100%)
hsl(180,100%,75%)
(180,100%, 50%))
hsl(180,100%,25%)
hsl(180,100%,0%)
hsl(240,100%,100%)
hsl(240,100%,75%)
(240,100%, 50%))
hsl(240,100%,25%)
hsl(240,100%,0%)
hsl(300,100%,100%)
hsl(300,100%,75%)
(300,100%,50%))
hsl(300,100%,25%)
hsl(300,100%,0%)
Experiment 4
- Pas de kleuren van je website aan door gebruik te maken van hsl-kleuren.
- Probeer de kleuren zó te kiezen dat er een smaakvol én goed leesbaar geheel onststaat.
Succes!
- Hieronder staat hoe je te werk kunt gaan bij het kiezen van een kleur.
Hoe 'maak' je een kleur?
Voorbeeld: Je wilt voor de body als achtergrondkleur licht pastelgroen gebruiken; iets als . Hoe krijg je dat voor elkaar?
Je zou het bijvoorbeeld als volgt kunnen aanpakken:
- Kies het kleurnummer voor groen: volgens figuur 5 is dat iets tussen 90 en 150. Kies bv. 120.
De 'standaard' kleur is dan: hsl(120, 100%, 50%). (met 100% verzadiging en 50% helderheid).
Vul je die in in je stjlblad dan ziet de kleur er in de browser zó uit: .
Die kleur is veel te hard.
- Maak de verzadiging veel lager, bv. 50%: . Nog te hard.
Dan de verzadiging op 40%:
- Nu de helderheid nog wat hoger, bv. 80%. Dan krijgen we hsl(120, 40%, 80%):
Bingo!
In de praktijk blijft uitzoeken van de kleuren die je wilt hebben best een klus.
Soms is een tool daarbij handig, bijvoorbeeld de website colorizer.org/ of een tekenprogramma.
Over de oefening
Een stijlregel om hyperlinks rood te maken zou er uit kunnen zien als figuur 8:
figuur 8
a {color: red;}
Had jij dat ook? Goed zo!
Over experiment 4
Je stijlblad zou er bijvoorbeeld kunnen zien als in figuur 9:
(Maar andere kleurencombinaties zijn net zo goed)
figuur 9
body {
color: hsl(40, 40%, 50%);
background-color: hsl(50, 20%, 30%); }
h1 {
color: hsl(40, 100%, 50%);
background-color: hsl(40, 30%, 40%); }
a {
color: hsl(140, 50%, 50%);
background-color: hsl(140, 40%, 35%); }
Dat ziet er op de website dan ongeveer zó uit:
figuur 10
Terschelling
home
polder
duinen
wad
Welkom op deze website over Terschelling
Langere declaraties
Bij langere css stijlregels is het overzichtelijker om deze over verschillende regels te verdelen:
- Op de eerste regel komen de selector en de openingsaccolade {
- Dan één declaratie per regel.
- Op de laatste regel de sluitaccolade }.
- De declaraties zijn alemaal wat ingesprongen.
Figuur 11 toont hoe het stijlblad van figuur 9 er dan komt uit te zien:
figuur 11
body {
color: hsl(40, 40%, 50%);
background-color: hsl(50, 20%, 30%);
}
h1 {
color: hsl(40, 100%, 50%);
background-color: hsl(40, 30%, 40%);
}
a {
color: hsl(140, 50%, 50%);
background-color: hsl(140, 40%, 35%);
}
Samenvatting
Voorgrondkleur
Achtergrondkleur
Kleur
- De kleur wordt opgegeven op een van de volgende manieren:
- Met een kleurnaam
(bv. white ,
black ,
aqua ,
blue ,
fuchsia ,
green ,
red ,
pink .
Voorbeeld: h2 {color: red;}
- Als een mengsel van rood, groen, blauw; zoals RGB kleuren of hexadecimale kleuren.
Voorbeeld: h2 {color: rgb(255, 0, 0);}
of h2 {color: #ff0000;}
- Met HSL kleuren
Hier is H (hue) de tint, een getal tussen 0 en 360;
S (saturation) de verzadiging, een percentage;
L (lightness) de helderheid, een percentage.
Voorbeeld: h2 {color: hsl(0%, 100%, 50%);}
(Zie de naslag kleur.)