CSS -zelfstudie

CSS HOME CSS-introductie CSS-syntaxis CSS-kiezers CSS-handleiding CSS-opmerkingen CSS-kleuren CSS-achtergronden CSS-randen CSS-marges CSS-opvulling CSS Hoogte/Breedte CSS-boxmodel CSS-overzicht CSS-tekst CSS-lettertypen CSS-pictogrammen CSS-links CSS-lijsten CSS-tabellen CSS-weergave CSS Max-breedte CSS-positie CSS Z-index CSS-overloop CSS zweven CSS Inline-blok CSS uitlijnen CSS-combinaties CSS Pseudo-klasse CSS Pseudo-element CSS-dekking CSS-navigatiebalk CSS-dropdownmenu's CSS-afbeeldingengalerij CSS-afbeeldingssprites CSS Attr-kiezers CSS-formulieren CSS-tellers CSS-websitelay-out CSS-eenheden CSS-specificiteit CSS !belangrijk CSS wiskundige functies

CSS Geavanceerd

CSS afgeronde hoeken CSS-randafbeeldingen CSS-achtergronden CSS-kleuren CSS-kleurzoekwoorden CSS-verlopen CSS-schaduwen CSS-teksteffecten CSS-weblettertypen CSS 2D-transformaties CSS 3D-transformaties CSS-overgangen CSS-animaties CSS-tooltips Afbeeldingen in CSS-stijl CSS-beeldreflectie CSS-object-fit CSS-objectpositie CSS-maskering CSS-knoppen CSS-Paginering CSS Meerdere kolommen CSS-gebruikersinterface CSS-variabelen Grootte van CSS-box CSS-mediaquery's CSS MQ-voorbeelden CSS Flexbox

CSS Responsief

RWD Intro RWD-kijkpoort RWD-rasterweergave RWD-mediaquery's RWD-afbeeldingen RWD-video's RWD-frameworks RWD-sjablonen

CSS- raster

Rasterintro Rastercontainer Rasteritem

CSS SASS

SASS-zelfstudie

CSS- voorbeelden

CSS-sjablonen CSS-voorbeelden css-quiz CSS-oefeningen CSS-certificaat

CSS- referenties

CSS-referentie CSS-kiezers CSS-functies CSS Referentie Auditief CSS webveilige lettertypen CSS animeerbaar CSS-eenheden CSS PX-EM-converter CSS-kleuren CSS-kleurwaarden CSS-standaardwaarden Ondersteuning voor CSS-browser

CSS- specificiteit


Wat is specificiteit?

Als er twee of meer CSS-regels zijn die naar hetzelfde element verwijzen, "wint" de selector met de hoogste specificiteitswaarde en wordt de stijldeclaratie toegepast op dat HTML-element.

Zie specificiteit als een score/rang die bepaalt welke stijlverklaring uiteindelijk op een element wordt toegepast.

Kijk naar de volgende voorbeelden:

voorbeeld 1

In dit voorbeeld hebben we het "p"-element als selector gebruikt en een rode kleur gespecificeerd voor dit element. De tekst wordt rood:

<html>
<head>
  <style>
    p {color: red;}
  </style>
</head>
<body>

<p>Hello World!</p>

</body>
</html>

Kijk nu naar voorbeeld 2:

Voorbeeld 2

In dit voorbeeld hebben we een klassekiezer toegevoegd (genaamd "test") en een groene kleur gespecificeerd voor deze klasse. De tekst zal nu groen zijn (ook al hebben we een rode kleur gespecificeerd voor de elementselector "p". Dit komt omdat de class selector een hogere prioriteit krijgt:

<html>
<head>
  <style>
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p class="test">Hello World!</p>

</body>
</html>

Kijk nu naar voorbeeld 3:

Voorbeeld 3

In dit voorbeeld hebben we de id-selector toegevoegd (genaamd "demo"). De tekst is nu blauw, omdat de id selector een hogere prioriteit krijgt:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test">Hello World!</p>

</body>
</html>

Kijk nu naar voorbeeld 4:

Voorbeeld 4

In dit voorbeeld hebben we een inline-stijl toegevoegd voor het "p"-element. De tekst wordt nu roze, omdat de inline-stijl de hoogste prioriteit krijgt:

<html>
<head>
  <style>
    #demo {color: blue;}
    .test {color: green;}
    p {color: red;}
  </style>
</head>
<body>

<p id="demo" class="test" style="color: pink;">Hello World!</p>

</body>
</html>


Specificiteit Hiërarchie

Elke CSS-selector heeft zijn plaats in de specificiteitshiërarchie.

Er zijn vier categorieën die het specificiteitsniveau van een selector bepalen:

  • Inline stijlen - Voorbeeld: <h1 style="color: pink;">
  • ID's - Voorbeeld: #navbar
  • Klassen, pseudo-klassen, kenmerkselectors - Voorbeeld: .test, :hover, [href]
  • Elementen en pseudo-elementen - Voorbeeld: h1, :before

Hoe specificiteit berekenen?

Onthoud hoe u specificiteit kunt berekenen!

Begin bij 0, voeg 100 toe voor elke ID-waarde, voeg 10 toe voor elke klassewaarde (of pseudo-klasse of attribuutkiezer), voeg 1 toe voor elke elementkiezer of pseudo-element.

Opmerking: Inline-stijl krijgt een specificiteitswaarde van 1000 en krijgt altijd de hoogste prioriteit!

Opmerking 2: Er is één uitzondering op deze regel: als u de !important regel gebruikt, overschrijft deze zelfs inline-stijlen!

De onderstaande tabel toont enkele voorbeelden voor het berekenen van specificiteitswaarden:

Selector Specificity Value Calculation
p 1 1
p.test 11 1 + 10
p#demo 101 1 + 100
<p style="color: pink;"> 1000 1000
#demo 100 100
.test 10 10
p.test1.test2 21 1 + 10 + 10
#navbar p#demo 201 100 + 1 + 100
* 0 0 (the universal selector is ignored)

De selector met de hoogste specificiteitswaarde wint en wordt van kracht!

Beschouw deze drie codefragmenten:

Voorbeeld

A: h1
B: h1#content
C: <h1 id="content" style="color: pink;">Heading</h1>

De specificiteit van A is 1 (één element selector)
De specificiteit van B is 101 (één ID-referentie + één element selector)
De specificiteit van C is 1000 (inline styling)

Aangezien de derde regel (C) de hoogste specificiteitswaarde heeft (1000), wordt deze stijlverklaring toegepast.



Meer specifieke voorbeelden van regels

Gelijke specificiteit: de laatste regel wint - Als dezelfde regel twee keer in de externe stylesheet wordt geschreven, wint de laatste regel:

Voorbeeld

h1 {background-color: yellow;}
h1 {background-color: red;}


ID-selectors hebben een hogere specificiteit dan attribuutselectors - Kijk naar de volgende drie coderegels:

Voorbeeld

div#a {background-color: green;}
#a {background-color: yellow;}
div[id=a] {background-color: blue;}

de eerste regel is specifieker dan de andere twee en zal daarom worden toegepast.


Contextuele selectors zijn specifieker dan een enkel element selector - Het ingesloten stylesheet is dichter bij het element dat gestyled moet worden. Dus in de volgende situatie:

Voorbeeld

From external CSS file:
#content h1 {background-color: red;}

In HTML file:
<style>
#content h1 {background-color: yellow;}
</style>

de laatste regel zal worden toegepast.


Een klassenkiezer verslaat een willekeurig aantal elementkiezers - een klassenkiezer zoals .intro verslaat h1, p, div, enz.:

Voorbeeld

.intro {background-color: yellow;}
h1 {background-color: red;}


De universele selector (*) en overgeërfde waarden hebben een specificiteit van 0 - De universele selector (*) en overgeërfde waarden worden genegeerd!