SlideShare a Scribd company logo
CSS 
Belangrijke begrippen
CSS inheritance 
(overerving)
Foto: http://www.flickr.com/photos/suzijane/231432195/
Relaties in HTML 
<article> 
<h1> 
Relaties in <abbr>HTML</abbr> 
</h1> 
<p> 
Elk element is <em>een kind van 
zijn ouder</em>. 
Een element kan ook <a>voorouders 
of nakomelingen</a> hebben. 
</p> 
</article>
Bepaalde CSS properties 
zullen automatisch overgeërfd 
worden door de nakomelingen
Welke CSS properties?
“de properties waarvan 
overerving logisch is” 
color 
font (face, size, weight...) 
line-height 
text-align 
letter-spacing, word-spacing 
text-transform…
background-image?
background-image
Zeker weten? 
Check properties lijst W3C
Maak er gebruik van. Zet alle 
typografische eigenschappen op het 
html-element. De rest erft ze over.
html { 
font-family: helvetica, sans-serif; 
font-size: 100%; 
line-height: 1.4; 
color: rgb(50,50,50); 
} 
Maak gebruik van overerving. 
Zo schrijf je minder code.
html { 
/* standaard typografie */ 
} 
! 
h2 { 
font-family: Georgia, serif; 
line-height: 1.2; 
} 
De elementen die afwijken, 
geef je aparte opmaak.
Minder code = win!
Overerving forceren
p { 
background-image: inherit; 
} 
Overerving kan je forceren 
via de inherit value
Relative font-sizing
px is absolute waarde
Een font-size in pixels gedefinieerd, 
staat altijd vast
Je wil font-size toch iets groter? 
Overal aanpassen!
(r)em is relatieve waarde
1 rem = de font-size van 
het html-element
Hoe groot is de tekst van h1? 
html { font-size: 18px; } 
h1 { font-size: 1rem; }
Hoe groot is de tekst van p? 
html { font-size: 18px; } 
p { font-size: 0.5rem; }
Hoe groot is de tekst van li? 
html { font-size: 16px; } 
nav li { font-size: 2rem; }
Voordeel: pas de font-size van het 
html-element aan en alles schaalt 
proportioneel mee.
font-size met rem gedefinieerd
Je wil alles toch iets groter? 
Pas font-size van html-element aan!
Definieer font-size altijd in (r)em. 
Je werkt flexibeler. Zeker als we later 
responsive webpagina’s gaan maken.
Het kan nog flexibeler! 
html { font-size: 100%; } 
nav li { font-size: 2rem; }
Definieer font-size altijd in (r)em. 
Definieer de font-size van het html 
element altijd relatief (em of %).
De CSS cascade 
(de voorrangsregels)
Conflictsituaties
p { 
color: gray; 
} 
! 
body p { 
color: black; 
} 
CSS conflictsituatie
De CSS cascade 
1 
2 
3 
importance 
(belangrijkheid) 
specificity 
(specificiteit) 
source order 
(bronvolgorde)
11 
Importance 
(belangrijkheid)
“Wat belangrijker is, krijgt voorrang” 
—W3C CSS specification
De plaats waar een declaratie 
voorkomt, bepaalt de belangrijkheid: 
5. Declaraties in de user agent stylesheet 
4. Declaraties in de user stylesheet 
3. Declaraties in de author stylesheet 
2. Important declaraties in de author stylesheet 
1. Important declaraties in de user stylesheet 
(1 = meest belangrijk)
5. de user agent stylesheet
4. de user stylesheet
3. de author stylesheet
2. !important in author stylesheet
1. !important in user stylesheet
21 
Specificity 
(de specificiteit van de selector)
Conflict! Welke kleur wordt het? 
p a { color:red; } 
a { color:yellow; }
Specifiekere selectors hebben 
voorrang in conflictsituaties
Conflict! Welke kleur wordt het? 
#titel { color:yellow; } 
body h1 { color:red; }
Specifiekere selectors hebben 
voorrang in conflictsituaties
Hoe wordt de specificiteit van een 
selector berekend?
0,0,0,0
class selectors 
inline style 
0,0,0,0 
element selectors 
id selectors
p { color: red; } 
0,0,0,1 
1 element selector (p)
div p { color: red; } 
0,0,0,2 
2 element selectors (p, div)
.melding { color: red; } 
0,0,1,0 
1 attribute (class) selector (.melding)
.melding .fout { color: red; } 
0,0,2,0 
2 attribute (class) selectors (.melding, .fout)
#zijkolom { color: red; } 
0,1,0,0 
1 id selector (#zijkolom)
#zijkolom .adv { color: red; } 
0,1,1,0 
1 id selector (#zijkolom), 1 class selector (.adv)
a:hover { color: red; } 
0,0,1,1 
1 pseudo-class selector (:hover), 1 element selector (a)
<div style=“color:red;”> 
1,0,0,0 
1 inline style
0,0,0,1 
< 
0,0,1,0 
< 
0,1,0,0 
< 
1,0,0,0
0,0,0,999 
< 
0,1,23,8 
< 
0,2,0,0 
< 
1,0,0,0
Bereken de specificiteit 
p { color: red; }
Bereken de specificiteit 
p { color: red; } 
0,0,0,1
Bereken de specificiteit 
p a { color: red; }
Bereken de specificiteit 
p a { color: red; } 
0,0,0,2
Bereken de specificiteit 
h3 + p { color: red; }
Bereken de specificiteit 
h3 + p { color: red; } 
0,0,0,2
Bereken de specificiteit 
.top a { color: red; }
Bereken de specificiteit 
.top a { color: red; } 
0,0,1,1
Bereken de specificiteit 
a:link { color: red; }
Bereken de specificiteit 
a:link { color: red; } 
0,0,1,1
Bereken de specificiteit 
a.new:link { color: red; }
Bereken de specificiteit 
a.new:link { color: red; } 
0,0,2,1
Bereken de specificiteit 
p#inl .vandaag { color: red; }
Bereken de specificiteit 
p#inl .vandaag { color: red; } 
0,1,1,1
Bereken de specificiteit 
div p.rood em:hover { }
Bereken de specificiteit 
div p.rood em:hover { } 
0,0,2,3
main h1 { color:red; } 
#titel { color:yellow; }
31 
Source order 
(bronvolgorde)
Twee selectors met exact dezelfde 
importance en specificiteit? 
De laatste krijgt voorrang!
h1 { color:red; } 
h1 { color:yellow; }
<!DOCTYPE html> 
<html lang="nl"> 
<head> 
<title></title> 
<meta charset="utf-8" /> 
<link rel="stylesheet" href="css/layout.css" /> 
<style> 
p { color:red; } 
</style> 
<link rel="stylesheet" href="css/layout2.css" /> 
<script src="js/js.js"></script> 
</head> 
<body> 
<!-- Jouw webpagina code --> 
</body> 
</html> 
Hoger = eerder
Enkele CSS-tips 
• Gebruik !important om 
cascadeproblemen te vinden 
• Laat !important nooit in 
je CSS staan 
• Hou de specificiteit van je selectors 
zo laag mogelijk

More Related Content

More from Thomas Byttebier

Characteristics of a well designed user interface
Characteristics of a well designed user interfaceCharacteristics of a well designed user interface
Characteristics of a well designed user interface
Thomas Byttebier
 
Toegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulierenToegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulieren
Thomas Byttebier
 
CSS positionering
CSS positioneringCSS positionering
CSS positionering
Thomas Byttebier
 
HTML opfrissing
HTML opfrissingHTML opfrissing
HTML opfrissing
Thomas Byttebier
 
Webdesign 2: introductie
Webdesign 2: introductieWebdesign 2: introductie
Webdesign 2: introductie
Thomas Byttebier
 
Een introductie tot HTML5
Een introductie tot HTML5Een introductie tot HTML5
Een introductie tot HTML5
Thomas Byttebier
 
HTML kort & bondig
HTML kort & bondigHTML kort & bondig
HTML kort & bondig
Thomas Byttebier
 

More from Thomas Byttebier (7)

Characteristics of a well designed user interface
Characteristics of a well designed user interfaceCharacteristics of a well designed user interface
Characteristics of a well designed user interface
 
Toegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulierenToegankelijke en semantische HTML formulieren
Toegankelijke en semantische HTML formulieren
 
CSS positionering
CSS positioneringCSS positionering
CSS positionering
 
HTML opfrissing
HTML opfrissingHTML opfrissing
HTML opfrissing
 
Webdesign 2: introductie
Webdesign 2: introductieWebdesign 2: introductie
Webdesign 2: introductie
 
Een introductie tot HTML5
Een introductie tot HTML5Een introductie tot HTML5
Een introductie tot HTML5
 
HTML kort & bondig
HTML kort & bondigHTML kort & bondig
HTML kort & bondig
 

Belangrijke CSS begrippen (2)