Načrtovanje in razvoj spletnih aplikacij

CSS selektorji in omejitve

CSS selektorji omogočajo izbiro elementov v dokumentu HTML. Z njimi določimo, na katere dele dokumenta se bo uporabilo posamezno slogovno pravilo. Osnova preprostega selektorja je lahko ime elementa, poleg tega pa poznamo tudi univerzalni selektor in različne dodatne pogoje, s katerimi izbor elementov natančneje omejimo.

Pomni: Selektor določa, kateri elementi bodo izbrani, deklaracije pa določajo, kako bodo ti elementi oblikovani.

Osnovna pravila

Osnova vsakega preprostega selektorja je lahko ime elementa HTML. Tak selektor izbere vse pojavitve tega elementa v dokumentu. Namesto imena elementa lahko uporabimo tudi zvezdico *, ki pomeni katerikoli element. Temu pravimo univerzalni selektor.

selektor pomen
A vse pojavitve elementa A
* vse pojavitve vseh elementov

Če zapišemo univerzalni selektor, bodo oblikovne lastnosti veljale za vse elemente v dokumentu.

* { color: red; }

Preprostemu selektorju lahko dodamo še dodatne pogoje. Tako ne izberemo vseh pojavitev elementa, ampak samo tiste, ki ustrezajo natančnejšim zahtevam.

Primerjave

Z dodatnimi pogoji na osnovnem selektorju dosežemo, da oblikovne lastnosti ne veljajo za vse pojavitve elementa, ampak samo za tiste, ki ustrezajo danim pogojem. Te pogoje zapišemo takoj za osnovnim selektorjem, brez dodatnih ločil.

Osnovni selektorji in dodatni pogoji

vrsta pomen
osnovni selektor izbere elemente po imenu oznake ali z univerzalnim selektorjem *
dodatni pogoji izbor omejijo na elemente z razredom, identifikatorjem, atributom, stanjem ali določenim delom vsebine

Pozor: Več kot je pogojev v selektorju, bolj natančno določimo izbrane elemente. Zato moramo pri pisanju selektorjev paziti, da ne postanejo po nepotrebnem zapleteni.

Zgledi

Najpogostejši dodatni pogoji

Najpogostejši dodatni pogoji so razredni selektorji, identifikatorski selektorji, atributni selektorji, psevdo-razredi in psevdo-elementi. Razredni selektorji uporabljajo zapis s piko, identifikatorski selektorji zapis z lojtro, atributni selektorji pa oglate oklepaje. Psevdo-razredi se začenjajo z enim dvopičjem, psevdo-elementi pa z dvema.

selektor pomen
.razred element pripada razredu razred
#id element ima identifikator id
[lastnost] element ima določeno lastnost lastnost
[L="V"] vrednost lastnosti L je enaka V
[L~="V"] ena od presledčno ločenih vrednosti lastnosti L je enaka V
[L|="V"] vrednost lastnosti L je enaka V ali pa se začne z V-
:link element je še neobiskana povezava
:visited element je že obiskana povezava
:hover kazalec miške je nad elementom
:active element je v aktivnem stanju
:focus element ima fokus
:first-child element je prvi med sorojenci
:lang(jezik) izbere elemente določenega jezika
::first-letter označuje prvo črko prve vrstice elementa
::first-line označuje prvo vrstico elementa
::before ustvari psevdo-element pred vsebino elementa
::after ustvari psevdo-element za vsebino elementa

Primer univerzalnega selektorja

* {
   color: red;
}

To pravilo določi rdečo barvo besedila vsem elementom, ki jih zajame dokument.

Primer selektorja elementa

p {
   color: gray;
}

To pravilo velja za vse elemente <p> v dokumentu.

Priporočila

  • Uporabi selektor elementa, kadar želiš oblikovati vse pojavitve iste oznake.
  • Univerzalni selektor uporabljaj premišljeno, ker vpliva na vse elemente.
  • Dodatne pogoje uporabljaj takrat, ko želiš bolj natančno izbrati elemente.
  • Selektorje zapisuj pregledno in le tako zapleteno, kot je potrebno.

Pogoste napake

  • Preširoka uporaba univerzalnega selektorja *.
  • Napačno razumevanje razlik med razrednimi, identifikatorskimi in atributnimi selektorji.
  • Mešanje psevdo-razredov in psevdo-elementov.
  • Uporaba preveč zapletenih selektorjev tam, kjer bi zadostoval preprostejši zapis.

Dober selektor je dovolj natančen, da izbere prave elemente, hkrati pa dovolj preprost, da ostane koda pregledna in lažje vzdrževana.