Specificiteitsregels in CSS
In het vorige voorbeeld waren beide selectors hetzelfde en hadden ze dezelfde prioriteit. Dit betekent dat de eigenschap die onderaan stond won.
Er zijn ook situaties waarin meerdere selectors op een pagina-element van toepassing zijn. In dat geval wint, bij conflicterende eigenschappen, de meer specifieke, dat wil zeggen de meer precieze selector. Laten we de specificiteitsregels bekijken.
Eerste regel
Een klasse wint altijd van een tag-selector:
<p class="text">text</p>
p {
color: red;
}
.text {
color: green; /* deze kleur wordt toegepast */
}
:
Tweede regel
Een identificatie wint altijd van een klasse:
<p id="elem" class="text">text</p>
.text {
color: red;
}
#elem {
color: green; /* deze kleur wordt toegepast */
}
:
Derde regel
Bij gelijke voorwaarden wint de selector die meer onderdelen heeft. Bijvoorbeeld, als we twee tag-selectors hebben, wint degene met meer tags:
<div>
<p>text</p>
</div>
p {
color: red;
}
div p {
color: green; /* deze kleur wordt toegepast */
}
:
Als er twee klasse-selectors zijn, wint degene waarin meer klassen zijn gespecificeerd (als daar tag-selectors zijn, hebben deze geen invloed):
<div class="block">
<p class="text">text</p>
</div>
.text {
color: red;
}
.block .text {
color: green; /* deze kleur wordt toegepast */
}
: