Selektorer i CSS
En selektor velger ut HTML-elementer slik at vi kan tilordne egenskaper til elementene.
Eksempler
h1 {
color: blue;
}
.rundKantlinje {
border: 5px solid white;
border-radius: 5px;
}
I CSS koden over er h1 en typeselektor. Alle elementer av typen h1 på nettsiden vil få egenskapen color satt til verdien blue.
.rundKantlinje er en punktselektor (også kalt klasseselektor). Alle HTML elementer med attributten class="rundKantlinje" vil få egenskapene border og border-radius slik som spesifisert i CSS-koden.
Typer selektorer
Vi har mange ulike typer selektorer
| Selektor | Forklaring | Eksempel |
|---|---|---|
| Typeselektor | Velger en type HTML element | h1 |
| CSS pseudoselektorer | Velger elementer rundt HTML elementet | h1::before |
| CSS pseudoklasser | Velger spesielle elementer, eller når elementer er i visse tilstander | div:hover og a:visited |
| Punktselektorer | Velger alle HTML elementer med attributten class="klassenavn" |
h1.spesiell eller .rundKantline |
| Hashtagselektor | Velger alle HTML elementer med attributten id="idNavn". Id-navnet kan kun brukes en gang på nettsiden. |
div#container eller #search |
| Attributtselektor | Velger alle HTML elementer som matcher attributten | input[type="range"] eller a[href="https://example.org"] |
Spesifisitet
CSS har et hierarki[1] av stiler. Typeselektorene html og body gjelder hele nettsiden (alt som ligger inne i body). Dersom du setter tekstfargen til blå i body med body {color: blue;} så vil dette gjelde for all tekst på siden. Men dersom du også setter p {color: green;} så vil all tekst som ligger inne i p-tagger bli grønt, mens resten av teksten blir blå. Det er fordi p er en mer spesifikk selektor enn body.
Pseudoklasser, punktselektorer, hashtagselektorer og attributtselektorer har alle høyere spesifisitet enn typeselektorer.
La oss se på et annet eksempel ↓
h1 { color: green; }
.blueText { color: blue; }
<h1>Denne teksten blir grønn</h1>
<h1 class="blueText">Denne teksten blir blå</h1>
I eksempelet ovenfor blir den første overskriften grønn. I den andre overskriften så vil begge linjene med CSS gjelde for overskriften: typeselektoren sier at teksten skal bli grønn, mens punktselektoren sier at den skal bli blå. Punktselektoren er mer spesifikk, derfor blir teksten blå.
Kombinasjon av selektorer
| Selektor | Forklaring |
|---|---|
ul li |
velger alle li inni ul |
ol li |
velger alle li inni ol |
ul > li |
velger første li inni ul |
h1 + p |
velger første p ETTER h1 |
h1 ~ p |
velger alle p ETTER h1 |
Hierarki: å rangere noe, over og under hverandre ↩︎