Osnove CSS

Ime lekcije Osnove Cascading Style Sheets (CSS)
Uporabljene tehnologije CSS, HTML
Kaj se boste naučili Kako oblikovati tekst v HTML strani s pomočjo Cascading Style Sheets (CSS)
Kaj se boste še naučili
bulletKako oblikovati HTML element (odstavek, bullet ali naslov (heading))
bulletKako pobarvati tekst, ozadje teksta ali kako za ozadje teksta uporabiti sliko
bulletKako nastaviti velikost HTML elementa
bulletKako pozicionirati tekst v odstavku
Pred to lekcijo preberi

Osnove HTML

Če ste dobro preučili osnove HTML, ste opazili, da je oblikovanje teksta na Web straneh hudo omejeno. S HTMLjem lahko npr. naredimo:

bulletodstavke (s pomočjo ukaza <P>)
bulletbullete in oštevilčene sezname s pomočjo ukazov <OL>, <UL> in LI>
bulletnaslove s pomočjo ukazov <H1> ... <H6>
bulletformatiranje teksta z ukazi kot je <FONT>, <B>, <I> ...

Zelo težko pa je v HTMLju narediti stvari, ki so v urejevalnikih teksta zelo enostavne, npr. obarvano ozadje teksta, tekst, zamaknjen v levo ali desno, rob okoli teksta ipd. 

Nekatere od teh zahtev lahko zasilno rešimo s pomočjo tabel, vendar je oblikovanje teksta s pomočjo tabel navadno zamudno in nerodno.

Da bi oblikovalcem Web strani olajšali delo, je bil razvit standard Cascading Style Sheets (CSS), ki naj bi oblikovalcem Web strani nudil približno takšne možnosti kot so na razpolago v urejevalnikih teksta.

Standard CSS naj bi podpirali vsi moderni browserji, celo tako stari browserji kot sta Netscape 4 in Internet Explorer 4. Na žalost imata ta dva browserja množico programskih napak, zaradi katerih so rezultati, ki jih boste videli v teh dveh browserjih, navadno naključni. Če se boste odločili in svoje strani oblikovali s pomočjo tehnologije CSS je veliko bolje da svojim uporabnikom predlagate nadgradnjo browserja kot pa da poskušate najti magično kombinacijo, ki bo vašo stran pravilno prikazala v obeh zgoraj naštetih browserjih (in v vseh novejših).

Osnove CSS

Osnovna ideja CSS je zelo enostavna - vsakemu elementu HTML strani lahko določimo stil ki definira njegove barve, fonte, formatiranje (levi, desni rob), obrobe, položaj na strani ... Stil posameznega elementa določimo zelo enostavno - v HTML tag (npr. <P>, <B>, <H1> ...) dodamo parameter style=definicija-stila, kjer v definiciji stila naštejemo naše zahteve, vsako v obliki parameter=vrednost;. Seveda moramo zaradi znakov, uporabljenih v definiciji stila (podpičje in enačaj) definicijo stila obdati z narekovaji.

Stil lahko določimo celotnemu dokumentu (če definiramo stil za BODY tag), posameznim odstavkom (če definiramo stil ukazu <P>) ali posameznim elementom teksta (npr. posameznemu poudarjenemu tekstu, če definiramo stil ukazu <B>).

Primer: poudarjen tekst naj bo obarvan rdeče.

Zahtevo zelo enostavno izvedemo s pomočjo ukaza <B style="color: red;">. HTML sekvenca ...

Naslednji tekst naj bo <B style="color: red;">poudarjen</B>.

... bo izgledala takole: Naslednji tekst naj bo poudarjen.

Nastavitve barve HTML elementov

V prejšnjem primeru ste videli, kako lahko nastavimo barvo HTML elementa (v našem primeru poudarjenega teksta). HTML elementom lahko nastavimo tudi barvo ozadja ali pa za ozadje uporabimo celo sliko s pomočjo definicij stila iz naslednje tabele:

parameter vrednost
color barva HTML elementa (navadno barva teksta)
background-color barva ozadja elementa. Vrednost transparent pomeni da ozadje elementa ni obarvano
background-image pot do slike ozadja v obliki url(relativni-ali-absolutni-url). Če browser ne more naložiti slike, podane s tem parametrom, bo obarval element z barvo, podano v parametru background-color.
background-repeat ponavljanje slike ozadja. Dovoljene vrednosti so no-repeat (ni ponavljanja).
background-position

 

Pozicija slike ozadja znotraj elementa. Če podamo samo eno vrednost, bo ta predstavljala horizontalno pozicijo ozadja v elementu, če podamo obe vrednosti, bosta predstavljali horizontalno in vertikalno vrednost.

Vrednosti lahko podamo relativno s ključnimi besedami top, center, bottom ali left, center, right, lahko pa podamo tudi oddaljenost levega zgornjega kota slike ozadja od levega zgornjega kota elementa z dolžinsko mero (glej spodaj)

Value: [<percentage> | <length>]{1,2} | [top | center | bottom] || [left | center | right]

Barvo HTML elementa lahko podamo na več načinov:

bulletz imenom barve (npr. red)
bullets heksadecimalno vrednostjo barve v obliki #RRGGBB (npr. #325CE0). Teh vrednosti ste verjetno že navajeni iz ukaza <FONT>
bulletnaštejemo vrednosti vseh treh komponent barve (rdeča - R, zelena - G in modra - B) v razponu od 0 do 255 (podobno kot heksadecimalna vrednost barve, le nekoliko bolj razumljivo) v obliki rgb(R,G,B), npr. rgb(50,92,224).
bulletNaštejemo procentualno vrednost rdeče, zelene in modre barve v obliki rgb(R%,G%,B%), npr. rgb(30%,40%,80%).
Primer: Obarvani naslovi

Naslove razdelkov, kot jih uporabljam v tej lekciji je zelo enostavno narediti - nastaviti moramo le barvo teksta (belo) in ozadja (modro) v <H1> HTML ukazu, npr. z naslednjo HTML sekvenco:

<H1 style="background-color: blue; color: white;">Naslov razdelka</H1>

... ki bo dala naslednji rezultat:

Naslov razdelka

 Pot do slike ozadja moramo podati tako da, URL (relativen ali absoluten) vložimo v tekst url(). Če je slika ozadja v istem imeniku kot HTML stran, lahko uporabimo npr. url(ozadje.gif), če je slika ozadja v drugem imeniku bomo verjetno napisali nekaj podobnega kot url(../images/ozadje.gif), če pa bomo sliko ozadja dobili iz drugega strežnika, bomo morali uporabiti absoluten URL, npr. url(http://www.myserver.com/images/ozadje.gif).

Primer: uporaba nastavitve barve HTML elementa za izdelavo bannerja

Nastavitev barve HTML elementov lahko uporabimo za izdelavo enostavnega bannerja - odstavku določimo sliko ozadja z ukazom <P style="background-image: url(ozadje);">, kot npr. z naslednjo HTML sekvenco:

<P style="background-image: url(../images/banner.gif); background-repeat: no-repeat; color: yellow;"><CENTER>Moj banner</CENTER></P>

... ki bo dala naslednji rezultat:

Moj banner

Pazljivi opazovalci bodo v prejšnjem primeru opazili vsaj dve napaki:

bulletTekst ni centriran v sliki ampak glede na celotno širino zaslon
bulletSlika ozadja je odrezana, saj je odstavek velik le toliko kot je velik tekst v njem.

Nastavitev velikosti HTML elementa

Zadnji primer v prejšnjem razdelku nas ni zadovoljil, ker je bila slika ozadja odrezana - nekako bi morali povedati kako visok in kako širok naj bo odstavek. To naredimo z naslednjimi definicijami stila:

parameter vrednost
width širina HTML elementa
height višina HTML elementa

Višino in širino (oziroma sploh vse dolžinske enote v CSSju) lahko podamo na mnogo različnih načinov, najbolj pogosti so našteti v naslednji tabeli:

oblika pomen
1pt dolžina je podana v pikah (point), ena pika je 1/72 cole. Redko uporabljeno.
1px dolžina je podana v pikslih (točkah na zaslonu). Ta merska enota je najbolj uporabna kadar moramo velikost HTML elementa prilagoditi velikosti slike v njem.
1em širina črke m. Ta širina je po definiciji enaka višini trenutnega teksta.
1ex višina črke x.
1cm, 1mm, 1in dolžina je podana v centimetrih, milimetrih ali inčah (colah, ena cola = 2.54 cm)
1% vrednost parametra je podana kot procent vrednosti istega parametra elementa, v katerem je gnezden trenutni element. Če podajamo velikosti odstavkov, bo nadrejeni element navadno cel dokument, če podajamo stil taga v odstavku (npr. <B>) pa bo nadrejeni element odstavek.

Nadaljujmo torej prejšnji primer, ki ga bomo dopolnili tako, da bomo podali višino in širino odstavka.

Primer: nastavitev širine in višine odstavka

Bannerju iz prejšnjega primera bomo določili širino in višino, ki bo enaka velikosti slike (600 x 60 pikslov). To storimo z naslednjo HTML sekvenco:

<P style="background-image: url(../images/banner.gif); background-repeat: no-repeat; color: yellow; width: 600px; height: 60px;"><CENTER>Moj banner</CENTER></P>

... ki bo dala naslednji rezultat:

Moj banner

Rezultat je že boljši - vidi se celoten banner in tekst je lepo centriran v njem. Moti le to, da je tekst napisan na zgornjem robu bannerja in ne v njegovi sredini. 

Pozicioniranje teksta v HTML elementu

Pozicijo teksta v HTML elementu (npr. teksta znotraj okvirja, ki določa odstavek), določimo z naslednjimi parametri:

parameter vrednost
line-height velikost vrstice teksta
text-align
bulletleft - levo poravnan tekst
bulletright - desno poravnan tekst
bulletcenter - centriran tekst
bulletjustify - tekst s poravnanim levim in desnim robom. Te vrednosti ni priporočljivo uporabljati, saj dobimo lepo poravnan tekst praviloma le s pomočjo deljenja besed, ki ga browserji ne podpirajo.

 S pomočjo teh dveh parametrov bomo popravili naš banner.

Primer: nastavitev višine vrstice in poravnave teksta

Tekst v našem bannerju bomo "spustili nižje" tako da bomo povečali višino vrstice. Hkrati bomo tekst centrirali s pomočjo stila, tako, da ne bomo potrebovali ukaza <CENTER>. Uporabimo naslednjo HTML sekvenco:

<P style="background-image: url(../images/banner.gif); background-repeat: no-repeat; color: yellow; width: 600px; height: 60px; line-height: 60px; text-align: center;">Moj banner</P>

... ki bo dala naslednji (perfekten) rezultat:

Moj banner