Barve so med najpogosteje uporabljenimi vrednostmi v CSS. Z njimi določamo barvo besedila, ozadja, robov in številnih drugih elementov. Za prikaz barv na zaslonu se pogosto uporablja zapis RGB, v CSS pa lahko isto barvo zapišemo na več različnih načinov.
Pomni: Isto barvo lahko v CSS pogosto zapišemo na več načinov, na primer kot ime barve, kot zapis #RRGGBB ali kot funkcijo rgb().
Osnovna pravila
Barve lahko na spletnih straneh dodamo z uporabo slogovnih predlog CSS. To lahko storimo na več načinov:
- s poimenovanjem barve,
- s šestnajstiškim zapisom,
- z zapisom
rgb(), - z zapisom
rgba(), - z zapisom
hsl()inhsla().
Vrednosti barv lahko uporabimo pri različnih lastnostih, na primer pri color, background-color in border-color. Lastnost color določa barvo besedila, lastnost background-color pa barvo ozadja elementa.
Pri 24-bitnem zapisu RGB lahko za vsako od treh osnovnih komponent uporabimo 256 različnih vrednosti. Tako dobimo skupaj 16.777.216 različnih kombinacij barv.
Pomni: Posebna vrednost transparent določa prosojno barvo, vrednost currentColor pa prevzame trenutno vrednost lastnosti color.
Primerjave
Primeri zapisovanja iste barve
| Barva | Ime barve | Šestnajstiški zapis HEX | Barva RGB |
|---|---|---|---|
| aqua | #00FFFF | rgb(0,255,255) | |
| black | #000000 | rgb(0,0,0) | |
| blue | #0000FF | rgb(0,0,255) | |
| fuchsia | #FF00FF | rgb(255,0,255) | |
| gray | #808080 | rgb(128,128,128) | |
| green | #008000 | rgb(0,128,0) | |
| lime | #00FF00 | rgb(0,255,0) | |
| maroon | #800000 | rgb(128,0,0) | |
| navy | #000080 | rgb(0,0,128) | |
| olive | #808000 | rgb(128,128,0) | |
| orange | #FFA500 | rgb(255,165,0) | |
| purple | #800080 | rgb(128,0,128) | |
| red | #FF0000 | rgb(255,0,0) | |
| silver | #C0C0C0 | rgb(192,192,192) | |
| teal | #008080 | rgb(0,128,128) | |
| white | #FFFFFF | rgb(255,255,255) | |
| yellow | #FFFF00 | rgb(255,255,0) | |
| transparent |
Pozor: Enaka barva je lahko zapisana na več različnih načinov, vendar moramo pri tem paziti na pravilno sintakso posameznega zapisa.
Zgledi
Poimenovane barve
CSS podpira veliko poimenovanih barv. Najprej si oglejmo osnovne oziroma standardne barve, ki se pogosto uporabljajo pri začetnem učenju CSS. Med posebne vrednosti sodita tudi transparent in currentColor.
Osnovne poimenovane barve
| Barva | Ime barve |
|---|---|
| aqua | |
| black | |
| blue | |
| fuchsia | |
| gray | |
| green | |
| lime | |
| maroon | |
| navy | |
| olive | |
| purple | |
| red | |
| silver | |
| teal | |
| white | |
| yellow | |
| transparent | |
| currentColor |
Celoten seznam poimenovanih barv si lahko ogledaš na uradni strani MDN: CSS named colors.
Šestnajstiški zapis barv
Koda barve je sestavljena iz treh parov šestnajstiških števil za rdečo, zeleno in modro komponento. Tak zapis opisuje barvo v barvnem prostoru sRGB. V sodobnem CSS lahko v šestnajstiški zapis vključimo tudi alfa komponento za prosojnost. Šestnajstiški zapis barve lahko uporabimo povsod, kjer je v CSS dovoljena vrednost barve.
#FF00FF
Znak # uvede šestnajstiški zapis. Prvi par predstavlja rdečo barvo, drugi zeleno in tretji modro. Najnižja vrednost posamezne komponente je 00, najvišja pa FF.
sRGB je standardni barvni prostor RGB, ki sta ga leta 1996 predstavila Hewlett-Packard (HP) in Microsoft za bolj dosledno prikazovanje barv na zaslonih, tiskalnikih in spletu.
Gre za privzeti barvni prostor za velik del digitalnih vsebin, med njimi za spletne strani, številne slike in drugo večpredstavnostno vsebino. Njegov namen je, da so barve na različnih napravah čim bolj usklajene.
V sodobnem CSS lahko v HEX zapis vključimo tudi prosojnost. Tak zapis ima osem znakov, na primer #00000022, kjer zadnji par 22 predstavlja alfa komponento.
Primeri:
- Modra barva ne vsebuje rdeče in zelene, zato je njena koda
#0000FF. - Rumena barva vsebuje rdečo in zeleno, ne vsebuje pa modre, zato je njena koda
#FFFF00. - Črna ne vsebuje nobene komponente svetlobe, zato ima kodo
#000000, bela pa vsebuje vse tri komponente v največji meri, zato ima kodo#FFFFFF. - Polprosojna črna je lahko zapisana kot
#00000022.
Kadar sta števki za zapis posamezne barvne komponente enaki, lahko barvo zapišemo tudi okrajšano, na primer #08F namesto #0088FF. Enako velja tudi za določene zapise s prosojnostjo, na primer #0002.
Določanje barve z zapisom RGB
Zapis RGB ima obliko:
rgb(rdeča, zelena, modra)
Funkcija rgb() izraža barvo v barvnem prostoru sRGB z rdečo, zeleno in modro komponento. V sodobnem zapisu lahko vsebuje tudi alfa komponento, torej prosojnost.
Primer:
Zelena barva ne vsebuje rdeče in modre, zato ima zapis rgb(0,255,0).
| Barva | Barva RGB |
|---|---|
| rgb(0,255,255) | |
| rgb(0,0,0) | |
| rgb(0,0,255) | |
| rgb(255,0,255) | |
| rgb(128,128,128) | |
| rgb(0,128,0) | |
| rgb(0,255,0) | |
| rgb(128,0,0) | |
| rgb(0,0,128) | |
| rgb(128,128,0) | |
| rgb(255,165,0) | |
| rgb(128,0,128) | |
| rgb(255,0,0) | |
| rgb(192,192,192) | |
| rgb(0,128,128) | |
| rgb(255,255,255) | |
| rgb(255,255,0) |
Določanje barve z zapisom RGBA
Zapis RGBA ima obliko:
rgba(rdeča, zelena, modra, alfa)
RGBA je uveljavljen zapis, ki RGB komponentam doda še alfa vrednost za prosojnost. Alfa med 0 in 1 določa stopnjo prosojnosti, kjer 0 pomeni popolno prosojnost, 1 pa popolno neprosojnost.
Primer:
Zelena barva ne vsebuje rdeče in modre, zato ima popolnoma neprosojen zapis rgba(0,255,0,1).
| Barva | Barva RGBA |
|---|---|
| rgba(0,255,0,1) | |
| rgba(0,255,0,0.8) | |
| rgba(0,255,0,0.6) | |
| rgba(0,255,0,0.4) | |
| rgba(0,255,0,0.2) | |
| rgba(0,255,0,0) |
Pozor: Pri zapisih z alfa komponento je končni videz barve odvisen tudi od ozadja elementa, saj različna stopnja prosojnosti spremeni način prikaza barve.
Določanje barve z zapisom HSL
HSL je kratica za hue, saturation, lightness oziroma odtenek, nasičenost in svetlost. Funkcija hsl() izraža barvo v sRGB glede na odtenek na barvnem krogu ter na nasičenost in svetlost. Podpira tudi neobvezno alfa komponento za prosojnost.
hsl(H, S, L)
H predstavlja odtenek na barvnem krogu. 0 pomeni rdečo, 120 zeleno in 240 modro. S predstavlja nasičenost v odstotkih, L pa svetlost v odstotkih.
Tudi HSL podpira prosojnost. Tak zapis imenujemo hsla(), kjer ima alfa enako kot pri modelu RGBA vrednost med 0 in 1.
hsla(H, S, L, alfa)
Primer:
<div style="background-color: hsla(0,100%,50%,0.2);"></div>
<div style="background-color: hsla(0,100%,50%,0.4);"></div>
<div style="background-color: hsla(0,100%,50%,0.6);"></div>
<div style="background-color: hsla(0,100%,50%,0.8);"></div>
<div style="background-color: hsla(0,100%,50%,1);"></div>
Priporočila
- Pri preprostih primerih lahko uporabiš poimenovane barve, kadar je zapis jasen in pregleden.
- Za natančno določanje barv pogosto uporabi HEX ali funkcijo
rgb(). - Kadar potrebuješ prosojnost, uporabi zapis z alfa komponento, na primer
rgba(),hsla()ali 8-mestni HEX zapis. - Za svetlejše in temnejše različice barv je pogosto zelo uporaben zapis
hsl().
Pogoste napake
- Zamenjevanje šestnajstiškega zapisa in zapisov s funkcijami.
- Napačno razumevanje alfa komponente pri prosojnosti.
- Nepravilno zapisane vrednosti v funkcijah
rgb(),rgba(),hsl()alihsla(). - Izbira barv brez upoštevanja preglednosti in kontrasta.
Barve na spletnih straneh najpogosteje določamo z uporabo CSS, na primer z lastnostmi color, background-color ali border-color. Pri izbiri barv moramo paziti tudi na dovolj dober kontrast med besedilom in ozadjem.