CSS: selectors
Om een element van onze HTML pagina een stijl te geven moeten we deze eerst selecteren. Daarvoor kunnen we een selector gebruiken.
Er zijn 6 soorten selectors:
- Type selector
- Class selector
- (ID selector)
- Attribute selector
- Pseudo class selector
- Combinatie selectors
1. Type selector
Met een type selector selecteer je op basis van de naam van de HTML tag. Hierbij laten we de brackets (<
, >
) weg.
<p>Een stukje tekst</p>
/* We selecteren de p tag. */
p {
color: blue;
}
Een stukje tekst
2. Class selector
Om een class selector te gebruiken moeten we eerst even terug naar HTML:
- Op elke HTML tag kan je een class attribuut toepassen.
- De waarde van dit attribuut is vrij te bepalen.
- Een class attribuut kan ook meerdere waardes bevatten gescheiden door een spatie.
- Als je lange classes wil schrijven kan je een koppelteken of een liggend streepje gebruiken
- We schrijven classes steeds in het engels.
Voorbeeld:
<p class="onze-eerste-selector onze-tweede-selector">Een stukje tekst</p>
In CSS kunnen we een class selecteren door een .
voor de naam van de class te plaatsen.
<p class="intro red">Een stukje tekst</p>
/* We selecteren de intro class */
.intro {
font-size: 2rem;
}
/* We selecteren de red class */
.red {
color: red;
}
Een stukje tekst
3. (ID selector)
In de praktijk wordt de ID selector nooit gebruikt maar voor de volledigheid wordt deze hier kort toegelicht.
Een ID selector werkt op basis van het ID attribuut. Zoals een class kan elk HTML element een ID attribuut hebben:
- de waarde van een ID moet uniek zijn
- een ID kan maar 1 waarde bevatten.
Een ID selecteren we door een #
voor de naam van de id te zetten.
<p id="uniek">Een stukje tekst</p>
/* We selecteren de #uniek id. */
#uniek {
color: blue;
}
Een stukje tekst
4. Attribute selector
Selecteer op basis van een attribuut. Je plaats de naam en optioneel de waarde van het attribuut tussen vierkante haakjes (square brackets).
<a href="link.html" target="_blank">Een link</a>
<p class="red">Een stukje tekst.</p>
/* We selecteren de alle p tags met een class. */
p[class] {
font-size: 2rem;
}
/* We selecteren de alle tags met een target met waarde _blank. */
[target="_blank"] {
color: purple;
}
Een stukje tekst.
5. Pseudo-class selector
Met een pseudo class selector kan je een status van een element selecteren:
:hover
: als je hovert over een element of link:visited
: als je een link reeds bezocht hebt
<a href="link.html">Een link</a>
/* We selecteren de hover status van een a tag */
a:hover {
color: red;
}
/* We selecteren de bezochte status van een a tag */
a:visited {
color: purple;
}
Bekijk de volledige lijst van pseudo-classes hier: Pseudo-classes
Selectors groeperen
Je kan ook meerdere selectors tegelijk selecteren als je die oplijst met een komma ertussen.
<h1>Titel</h1>
<p>Een stukje tekst</p>
/* We selecteren de h1 en p tag. */
h1,
p {
color: blue;
}
Titel
Een stukje tekst
Selectors combineren
Je kan ook meerdere selectors combineren. Hiervoor zijn er een aantal opties.
Descendant selector
Selecteer bepaalde tags binnen een selector.
<div>
<p>Dit is een tekst met <a href="link.html">een link</a></p>
<div>
/* We selecteren alle a tags binnen een div tag */
div a {
color: red;
}
Dit is een tekst met een link
Child combinator: >
Selecteer een child van een selector.
<p>Dit is een tekst met <a href="link.html">een link</a></p>
/* We selecteren alle a tags die een child zijn van een p tag */
p > a {
color: red;
}
Dit is een tekst met een link
Next Sibling combinator: +
Selecteer alle elementen die direct volgen na een ander element.
<p>Dit is een tekst met <a href="link.html">een link</a></p>
<p>Deze tekst volgt direct op een andere p tag</p>
/* We selecteren alle p tags die direct volgen op een andere p tag */
p + p {
color: red;
}
Dit is een tekst met een link
Deze tekst volgt op een andere p tag
Subsequent-sibling combinator: ~
Selecteer alle elementen die volgen na een ander element. Deze hoeven niet direct te volgen na het element.
<p>Dit is een tekst met <a href="link.html">een link</a></p>
<h2>Subtitel</h2>
<p>Deze tekst volgt op een andere p tag</p>
/* We selecteren alle p tags die volgen op een andere p tag */
p ~ p {
color: red;
}
Oefening
Oefen je selector skills met deze oefening