CSS & Styling
Wat is Cascade, Specificity en Inheritance in CSS?
Deze drie principes bepalen welke CSS-regels worden toegepast op elementen.
Cascade (watervalling)
CSS staat voor Cascading Style Sheets. 'Cascade' betekent dat CSS-regels van boven naar beneden worden gelezen. De laatste regel wint wanneer twee regels met gelijke specificiteit conflicteren.
Specificity (specificiteit)
Specificity bepaalt welke selector prioriteit heeft: Tag selectors (1 punt): div, p Class/attribute selectors (10 punten): .button, [type] ID selectors (100 punten): #main Inline styles (1000 punten): style= !important (10000 punten) - vermijd dit Hoe hoger de specificity, hoe sterker de regel.
Inheritance
Sommige CSS-eigenschappen erven over van parent naar child elementen. Font-family, color, line-height erven over. Width, padding, margin erven NIET over.
Code Voorbeelden
/* Tag selector - 1 punt */
div { color: blue; }
/* Class selector - 10 punten (wint van tag) */
.container { color: red; }
/* ID selector - 100 punten (wint van class) */
#main { color: green; }
/* Inline style - 1000 punten (wint van ID) */
/* <div id="main" style="color: yellow;"> */
/* !important - 10000 punten (wint van alles) - VERMIJD */
p { color: black !important; }body {
font-family: Arial; /* ERFT OVER naar alle elementen */
color: #333; /* ERFT OVER */
}
.container {
width: 500px; /* ERFT NIET OVER */
padding: 20px; /* ERFT NIET OVER */
color: red; /* OVERSCHRIJFT body color */
}💡 Praktijk Tips
Houd specificity laag door meer generieke selectors te gebruiken. Vermijd ID selectors waar mogelijk. !important is een code smell - teken dat iets niet klopt.