osnove css a

Upload: nitko-netko

Post on 30-Oct-2015

48 views

Category:

Documents


2 download

TRANSCRIPT

  • Internet programiranje Nastavni materijali

    Elektrotehniki fakultet Osijek Kneza Trpimira 2b

    31000 Osijek

    www.etfos.hr

    1. UVOD

    Da bismo shvatili zato je HTML postao ono to je danas, moramo nakratko zaviriti u ne tako davnu prolost. Razvijen kao strukturni jezik, prvenstveno je bio namijenjen strukturiranom prikazu podataka. Njegova jednostavnost i primjenjivost dovele su do toga da ga je vrlo brzo prihvatio velik broj korisnika. U kratkoj povijesti raunalnih tehnologija nijedan drugi raunalni jezik nije u toliko kratkom vremenu stekao tako veliku popularnost.

    Usporedo s eksponencijalnim rastom broja web sjedita, rasla je i potreba web dizajnera da svoja sjedita uine ljepima i privlanijima. Uoene nedostatke tadanjeg HTML-a, kao to je, primjerice, izostanak oznaka koje su dokumente inile privlanijima korisnicima, komercijalne tvrtke koje su proizvodile web preglednike pokuale su nadoknaditi tako to su, pored ionako slabog utjecaja standardizacijskih organizacija, u jezik unosile svoje oznake. To je kulminiralo takozvanim "ratom preglednika" iz kojeg je Internet Explorer iziao kao pobjednik, tako to je zavladao s preko 95% trita.

    Napokon je 1995. godine W3C definirao standardiziranu specifikaciju HTML jezika koja je u sebi sadravala mnoge elemente koje su u jezik unijeli proizvoai preglednika.

    Ta kratka i burna prolost uzela je svoj danak. Neke se injenice nisu mogle sakriti. Nekompatibilnost preglednika kao posljedica samovolje proizvoaa u prolosti je, a u nekoj mjeri i danas, uzrokovala nemale probleme za veinu web dizajnera. Sloenost koda optereenog oznakama za prikaz podataka dovela je do toga da je u dokumentu bilo vie oznaka nego podataka. Nedostatak mogunosti s jedne strane, i neprestana potreba za privlanim dizajnom s druge strane, neprestano su tjerali web dizajnere da osmiljavaju nove naine i izmiljaju nove trikove kako web sjedite uiniti ljepim.

  • Izgled istog HTML koda s dizajnerskim dodacima. Jasno je vidljiva koliina oznaka u odnosu na podatke koji se prikazuju.

    Kako prilagoditi izgled stranice da ona bude jednakog prikaza u svim preglednicima? Kako formatirati dokument da elementi u njemu budu precizno smjeteni? Kako na web sjeditu od stotinu stranica odjednom promijeniti, primjerice, boju fonta na svim stranicama? Ovakva su se pitanja nizala uzdiui na povrinu frustracije s kojima su se susretali autori web stranica.

    Iako je ve 1990. Tim Berners-Lee - tvorac weba - izradio preglednik koji je u sebi imao elemente jezika za definiranje stilova, tek se 1993. i 1994. godine zahuktala rasprava o tome kako taj jezik mora izgledati. Hkon Wium Lee i Bert Bos autori su prve specifikacije CSS-a, predstavljene krajem 1994. godine.

    CSS (eng. Cascading Style Sheets), odnosno kaskadni stilovi, jednostavan su mehanizam za dodavanje stilova - fontova, boja itd. - web stranicama. Svojim dolaskom CSS je izazvao pravu revoluciju na webu i to zahvaljujui nizu prednosti od kojih moemo razmotriti samo neke osnovne:

    1. Koritenjem CSS-a postalo je mogue odvojiti prezentaciju podataka i dizajn od same strukture podataka. To znai da su sada dizajneri mogli samostalnije osmiljavati web sjedita - praktiki neovisno o kreatorima HTML kda.

    2. Sam HTML kd postaje neusporedivo itkiji i manji to znai da ga je bilo puno lake nadzirati.

    3. Kaskadnim stilovima omogueno je upravljanje web sjeditem s jednog mjesta uz potivanje pojedinanih odstupanja od zadanog stila. Odjednom je postalo mogue jednostavnom promjenom nekoliko parametara, promijeniti izgled tisuama stranica.

  • 4. Predloen i standardiziran pod okriljem W3 konzorcija otpoetka je relativno jednako implementiran kod razliitih proizvoaa web preglednika. To to nije u potpunosti jednako implementiran, lako se rjeavalo uporabom razliitih stilova za razliite preglednike.

    5. CSS je donio itav niz naina za ureivanje prikaza podataka koji do tada nisu postojali u samom HTML-u.

    CSS je, kao uostalom i sve ostale web tehnologije, u stalnom razvoju. Trenutna predloena specifikacija je CSS verzije 2 - prva revizija. Taj i sve ostale standarde i preporuke moete pronai na CSS stranicama W3 konzorcija.

    Mnogi e rei da je za kreiranje CSS-a dovoljno imati jednostavan program za ureenje teksta (npr. Notepad). Iako, gledano s tehnike strane, taj stav u potpunosti stoji, u praksi je puno bolje pri izradi koristiti kvalitetan alat. U praksi se pokazalo da je jako teko otipkati desetak redaka istog teksta, a da vam se pri tipkanju ne potkrade pokoja greka. Zato treba koristiti prednosti specijaliziranih editora koji imaju ugraene efekte za koloriranje i automatsko dovravanje kljunih rijei, to izradu ini dosta lakom. Osim toga, uz njih obino dolaze i popisi kljunih rijei te razne druge reference, to e dodatno olakati izradu.

    Svi vodei WYSIWYG alati (Macromedia Dreamweaver, Microsoft FrontPage itd.) imaju ugraene kvalitetne CSS editore. Meutim, ti alati su komercijalni i nisu svima dostupni. Na tritu postoji itav niz lako dostupnih pa ak i besplatnih alata za izradu CSS-a, a popis veine moete pronai na stranicama W3 konzorcija.

    Popis CSS editora s kratkim opisima i linkovima na sjeditu W3 konzorcija.

    Iz popisa moemo izdvojiti jedan alat koji se svojom jednostavnou i kakvoom istie od ostalih. To je TopStyle, proizvod tvrtke Bradbury Software. Ovaj program dolazi u dvije inaice - "Pro" i "Lite". Iako je profesionalna inaica poneto kvalitetnija i nudi dosta dodatnih opcija, mi emo se zadovoljiti "Lite" inaicom koja je, iako besplatna, sasvim dovoljna za veinu poslova pri pisanju kaskadnog stila.

    Skinite jedan od alata s popisa i instalirajte ga na raunalo. Ukoliko iz nekog razloga niste u mogunosti instalirati program na raunalo, za pisanje CSS-a moete skinuti SciTE editor teksta, i to u inaici "single file executable called Sc1". Radi se o vrlo malom, ali monom programu za ureivanje teksta koji ima efekte za koloriranje kljunih rijei CSS-a, a kojeg, u navedenoj izvedbi, nije potrebno instalirati na raunalo.

  • 2. ELEMENTI CSS-a

    2.1. Pogled u CSS

    Pogledajmo zajedno kako izgleda CSS. Kratak primjer usporedbe istog HTML koda i web stranice izraene CSS-om govori sam za sebe.

    Ako elimo da ispis koji vidi korisnik izgleda ovako,

    Lorem ipsum dolor sit amet,

    consectetur adipisicing elit ...

    moemo to uraditi sljedeim HTML kodom.

    Lorem ipsum dolor sit amet,

    consectetur adipisicing elit ...

    Ili moemo napisati nekoliko linija CSS-a,

    p { font-family:"Courier New", Courier, mono; } .stil { color:#CC0000; font-size:24px; font-weight:bold; }

  • i tada e, za isti rezultat ispisa, HTML kd izgledati ovako:

    Lorem ipsum dolor sit amet ...

    consectetur adipisicing elit ...

    U drugom primjeru izvedenom CSS-om vrijedi primijetiti dvije vane stvari:

    1. jednostavnost HTML koda, 2. oblik, veliina i boja znakova za obje linije kontrolira se s jednog mjesta

    Razmotrimo od ega se sastoji prethodni CSS. Ako taj kd ralanimo, pojedine elemente moemo razvrstati u tri glavne kategorije:

    1. selektori - p, .stil - identificiraju pojedine elemente na HTML stranici; 2. svojstva - color, fontsize... - kljune rijei za opis pojedinog elementa stranice; 3. vrijednosti - #CC0000, 24px... - vrijednost koju moe poprimiti pojedino svojstvo;

    i etvrtu pomonu kategoriju:

    4. komentari - tekst napisan izmeu znakova /* i */.

    2.2. to to tono CSS radi HTML-u?

    Zamislimo ovakav sluaj. Napisali ste seminarski rad o jednom starom latinskom tekstu. Rad se sastoji od nekoliko stranica i eljeli biste ga objaviti na webu. Razmiljajui o nainu izrade, birate HTML. Ve ste se dobro upoznali s tim jezikom pa vam izrada nekolicine stranica nije nikakav problem. Dovrili ste stranice i gledate rezultat u pregledniku:

  • Lorem ipsum

    Lorem ipsum je tekst koji se sastoji od niza sluajnih rijei bez znaenja. Iako njegove rijei ne znae nita, pretpostavlja se da je nastao na temelju Ciceronovog djela "O krajnostima dobra i zla". Ovaj tekst se ve stotinama godina koristi za testiranje ispisa i punjenje prostora tekstom.

    "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat".

    Ve ste na prvi pogled uoili da vaem seminarskom radu neto nedostaje. Struktura i podaci su tu, ali prezentacija je za jedinicu. Vaa stranica je izraena istim HTML kodom koji izgleda ovako:

    Lorem ipsum Lorem ipsum je tekst koji se sastoji od niza sluajnih rijei bez znaenja. Iako njegove rijei ne znae nita, pretpostavlja se da je nastao na temelju Ciceronovog djela... ...

    "Lorem ipsum dolor...

    Poznavajui vrijednost lijepe prezentacije, elite va rad izdignuti iznad razine bezlinog, suhoparnog teksta. Izradite CSS stil - obinu tekstualnu datoteku - i poveete je s HTML dokumentima. U CSS-u redom stoji sljedee:

    h1 { font-family:Verdana,Helvetica,sans-serif; font-weight:bold; font-size:14px;

    } p {

  • font-family:Verdana,Helvetica,sans-serif; font-size:12px;

    } p.citat { font-style:italic;

    font-size:12px;

    border:1px solid #000; padding:4px; background-color:#FFFFCC; }

    U HTML kodu dodate poneki atribut:

    Lorem ipsum Lorem ipsum je tekst koji se sastoji od niza sluajnih rijei bez znaenja. Iako nema smisleno znaenje, pretpostavlja se da je nastao na temelju Ciceronovog djela... ...

    "Lorem ipsum dolor...

    I kao rezultat ove intervencije, u konanom prikazu dobijete sljedee:

  • Promotrimo to se tono dogodilo s vaim ispisom. Kreiranjem stila CSS-om i njegovim povezivanjem s dokumentom, dogodila se promjena koja se oituje pri uitavanju dokumenta u preglednik. Preglednik pri uitavanju detektira da postoji CSS, proita ga i prepozna kljune rijei, a zatim pokua prikazati dokument onako kako mu to sugerira CSS.

    Primjerice, u CSS-u stoji da tekst koji se nalazi unutar oznake poprima sljedee parametre:

    tekst je napisan fontom Verdana ili Helvetica ili sans- -serif, i to redom kako je font dostupan pregledniku

    tekst e biti podebljan visina znakova bit e 14 piksela.

    Ukoliko je CSS tono definiran i ukoliko preglednik podrava navedena svojstva, rezultat e biti prikaz kakav nalae CSS.

    Da bi definiran CSS stil imao funkciju, potrebno ga je povezati s HTML dokumentom. To je mogue izvesti na etiri naina:

    povezivanjem na vanjski dokument uvoenjem vanjskog dokumenta umetanjem u zaglavlje dokumenta dodavanjem u liniji atributom style.

  • U prva dva sluaja pretpostavljamo da postoji zaseban dokument - datoteka pohranjena pod imenom "stil.css", a u kojoj se nalazi navedeni CSS stil, i to bez ikakvih dodatnih oznaka:

    p { font-family:"Courier New", Courier, mono; } .stil { color:#CC0000;

    font-size:24px;

    font-weight:bold;

    }

    Povezivanje na vanjski dokument

    Povezivanje na vanjski dokument izvodi se oznakom koja se dodaje u zaglavlje HTML dokumenta - izmeu oznaka i .

    Oznaka sastavni je dio HTML standarda i slui povezivanju s vanjskim dokumentima. Zavrna oznaka ne postoji.

    Uz oznaku postoji vie atributa od kojih su nam najbitnija sljedea tri:

    rel - definira odnos izmeu oznake i odredinog dokumenta. Moe poprimiti nekoliko vrijednosti, a kad slui za povezivanje CSS-a, poprima vrijednost "stylesheet";

    type - definira tip odredinog dokumenta. U ovom sluaju tip dokumenta je "text/css";

    href - URI dokumenta koji se povezuje.

  • Dakle, na dokument povezao bi se sljedeim kodom:

    ...

    ...

    Podsjetimo se: URI - Uniform Resource Identifier. Kod atributa href doputena je upotreba apsolutne i relativne putanje. Npr: href="http://www.example.com/css/stil.css" ili href="/css/stil.css" .

    Uvoenje vanjskog dokumenta

    Uvoenje CSS-a obavlja se putem kljune rijei @import. Ona se upisuje u zaglavlju dokumenta i to unutar oznake. U oznaci obavezno se postavlja atribut tipa, i to: type="text/css".

    ...

    ...

  • Oznake su HTML komentar. Nisu obavezne kod ovakvog naina definiranja CSS-a, a slue da stariji preglednici, koji nisu imali mogunost prikaza CSS-a, ne bi prikazivali CSS kao tekst. Danas je takve preglednike gotovo nemogue pronai u uporabi.

    Pri ovakvom nainu povezivanja CSS-a bitno je pripaziti na redoslijed uvezenih stilova. Ukoliko su na vie mjesta definirane razliite vrijednosti svojstava istog selektora, zbog kaskadnih svojstava CSS-a nadvladava posljednja definicija.

    Umetanje CSS-a u zaglavlje dokumenta

    CSS se moe definirati u zaglavlju dokumenta u oznaci , uz uporabu atributa type="text/css".

    ...

    p { font-family:"Courier New", Courier, mono; } .stil { color:#CC0000;

    font-size:24px;

    font-weight:bold; }

    ...

  • Primjeujete da je navedeni nain umetanja jako slian opisanom uvozu CSS-a. Ustvari, mogue ih je i kombinirati, tako da se, ispod linija za uvoz CSS-a, nadopiu lokalne definicije CSS-a.

    ...

    @import "/css/stil.css";

    p { font-family:"Courier New", Courier, mono;

    }

    ...

    Dodavanje CSS-a u liniji s pomou atributa style

    Stilovi za pojedinanu HTML oznaku u dokumentu mogu biti definirani atributom style. Ovaj atribut moe se definirati za gotovo sve HTML oznake - izuzetak su oznake , i jo neke.

    ...tekst...

    Ovako definiran stil vrijedi samo za oznaku unutar koje je definiran.

  • 2.3. Selektori

    Nauili smo kako povezati CSS stil s HTML dokumentom. Slijedi nam prouiti kako implementirati pojedini stil na dio ili na cijelu HTML stranicu.

    Vidjeli smo da se pojedini stil definira kao:

    selektor {svojstvo:vrijednost} .

    Selektor identificira element ili dio HTML stranice na koji se primjenjuje navedeni stil. Postoji itav niz selektora pa potpuno upoznavanje primjene svakog od njih nije nimalo banalan zadatak. Ovdje emo detaljnije obraditi nekoliko osnovnih, najee koritenih tipova:

    jednostavni selektori klasni selektori

    ID selektori

    kontekstni selektori

    pseudoklase.

    Prije samog upoznavanja selektora, nekoliko rijei o strukturi HTML dokumenta. itavi HTML dokument moemo prikazati kao stablo prema sljedeoj slici:

    Prikaz - HTML hijerarhijsko stablo.

  • Vidljivo je da elementi unutar stabla imaju svoje podreene i nadreene elemente. Primjerice, sadran je u oznaci , a sadran je u oznaci . S pomou selektora moemo precizno identificirati bilo koji od elemenata stabla.

    Jednostavni selektori

    Jednostavni selektori (eng. type selectors) najjednostavniji su od svih. Odgovaraju imenu html oznake i primjenjuju se na svaku istovrsnu oznaku u dokumentu.

    Primjerice, razmotrimo sljedei stil:

    p { font-family:Verdana, Helvetica, sans-serif; } h1 { color:#CC0000; font-size:24px;

    font-weight:bold; }

    Ovakav stil povezan s HTML dokumentom sugerira web pregledniku da tekst u svim paragrafima na stranici prikae ispisan prvim raspoloivim od navedenih fontova te da sav tekst unutar oznaka u dokumentu prikae podebljan, crvene boje i veliine 24px.

    Prednost koritenja ovakvog tipa selektora je u tome to, osim samog povezivanja stila s dokumentom, ne zahtijeva intervencije u html kd. Primjerice, ako elimo definirati tip i veliinu fonta za sve stranice, dovoljno je to napraviti ovim selektorom:

    body { font-family:Verdana, Helvetica, sans-serif; font-size:12px;

    }

    Zbog toga to je selektor body u samom vrhu hijerarhije vidljivog dijela HTML dokumenta - svi elementi koji se hijerarhijski nalaze nie od njega, poprimit e navedena svojstva.

  • Nedostatak primjene CSS-a putem jednostavnih selektora je u tome to se definirani stil primjenjuje na sve HTML elemente bez izuzetaka. Ne moemo postii da se, primjerice, paragrafi u tablici prikazuju razliito od paragrafa izvan tablice, to nam mogu omoguiti selektori koje emo upoznati u sljedeoj lekciji.

    Klasni selektori

    Kao to smo ve rekli, dobra strana jednostavnih selektora - primjena na sve oznake istog tipa - ujedno moe biti i njihov velik nedostatak. Pretpostavimo da elite izraditi stranicu s prijevodima latinskih izreka tako da u jednom paragrafu navedete izreku, u sljedeem prijevod, i tako naizmjence. Da bi posjetitelji lake razlikovali prijevod od izvornika, eljeli biste da tekst u paragrafima bude razliito formatiran.

    Mogue je definirati ovakav stil:

    .izreka { font-weight:bold; font-size:11px;

    } .prijevod { font-style:italic;

  • font-size:12px;

    }

    te uz primjenu sljedeeg koda:

    Navigare necesse est,

    vivere non est necesse. Ploviti je nuno, ivjeti nije nuno.

    dobiti ovakav rezultat:

    Navigare necesse est, vivere non est necesse.

    Ploviti je nuno, ivjeti nije nuno.

    Primjeujete kako se pri definiranju selektora pie .naziv, a pri primjeni selektora na paragraf samo naziv.

    Drugi nain definiranja je oznaka.naziv. Razlika je to se ovako definirani selektori mogu primijeniti samo na oznake istog tipa. Primjerice:

    p.izreka { font-weight:bold; font-size:11px;

    } p.prijevod { font-style:italic;

    font-size:12px;

    }

    Ovako definirani selektori primjenjuju se jednako kao i prethodni - - ali za razliku od prethodnih, koji se mogu primijeniti na razliitim oznakama, ovakvi se mogu primijeniti samo na paragrafe.

  • Na ovakav nain definirali smo klasne selektore i identificirali pojedine paragrafe kao pripadnike jedne, odnosno druge klase.

  • ID selektori

    Na prvi pogled, ovaj se tip selektora razlikuje od klasnih selektora samo u dvije stvari. Prvo, umjesto toke, definira se oznakom "#":

    #izreka { font-weight:bold; font-size:11px;

    } #prijevod { font-style:italic;

    font-size:12px;

    }

    i drugo, umjesto atributom class primjenjuje se atributom id:

    Navigare necesse est, vivere non est necesse. Ploviti je nuno, ivjeti nije nuno.

    Rezultat je jednak prethodnom:

    Navigare necesse est, vivere non est necesse.

    Ploviti je nuno, ivjeti nije nuno.

    Vjerojatno se pitate u emu je onda razlika izmeu klasnog i id selektora. U jednom HTML dokumentu svi id atributi trebali bi biti razliiti. Oni su namijenjeni referenciranju na odreeni element. Primjerice, u dokumentu smije biti samo jedan paragraf s atributom id ="izreka". Id selektor primjenjuje se kada se eli pridodati stil za jedan jedinstven element na stranici. Ovdje je id atribut primijenjen na paragraf. U stvarnosti, jedan dokument obino se sastoji od mnotva istih paragrafa. Kako se id selektor primjenjuje na jedinstven element stranice, rijetko e biti primijenjen na

  • paragraf. Stvarniji primjer bila bi primjena na element, jer uobiajeno, na stranici postoji samo jedan glavni naslov.

    Pseudoklase

    Pseudoklase su gradivo koje zasigurno moemo smjestiti u napredno koritenje CSS-a. Meutim, postoje etiri pseudoklase koje se susreu na gotovo svakoj stranici izraenoj CSS-om. Suprotstavljajui sloenost problematike i masovnost uporabe, u ovom poglavlju ponueno vam je "instant" rjeenje za uljepavanje linkova, bez prevelikog ulaenja u detalje, ali u praksi sasvim uporabljivo.

    Pseudoklase :link, :visited

    Osnovni prikaz linkova u HTML-u prilino je suhoparan, a definiranje boje linkova u oznaci ne daje puno bolje rezultate. CSS nudi rjeenje dvjema pseudoklasama. Izgled neposjeenog linka definira se pseudoklasom a:link, a izgled posjeenog linka pseudoklasom a:visited.

    a:link { text-decoration:none; color:#CC0000;

    } a:visited { text-decoration:line-through; color:#0000CC;

    } CARNet

  • Dinamike pseudoklase :hover, :active

    Dodatna atraktivnost linkova moe se postii dinamikim efektima, koji se aktiviraju pri nekakvoj radnji korisnika. Primjerice, u ovom sluaju, prelaskom pokazivaa preko linka aktivira se prikaz selektora a:hover, dok se od trenutka pritiska tipke mia, pa do otputanja tipke, aktivira prikaz selektora a:active.

    a:hover { background-color:#000; color:#fff;

    } a:active { background-color:#ffff00; color:#cc0000; }

    CARNet

    Da biste dobili eljen rezultat, zbog odreenih specifinosti CSS-a, ije prouavanje izlazi iz okvira ovog predavanja, ove pseudoklase pri definiranju uvijek morate navesti sljedeim redoslijedom: a:link{} a:visited{} a:hover{} a:active{} .

    Vie istovremenih linkova razliitih svojstava

    Definirane pseudoklase vrijede za sve linkove u dokumentu. Ukoliko u jednom dokumentu postoji potreba za vie razliitih vrsta linkova, koristi se kombinacija klasnih selektora i pseudoklasa.

  • a.vrsta1:link {

    text-decoration:none; color:#CC0000; }

    a.vrsta1:visited {

    text-decoration:line-through; color:#0000CC; }

    a.vrsta1:hover {

    background-color:#000; color:#fff; }

    a.vrsta1:active {

    background-color:#ffff00; color:#cc0000; }

    a.vrsta2:link {

    text-decoration:underline; color:#000; }

    a.vrsta2:visited {

    text-decoration:line-through; color:#CC0000; }

    a.vrsta2:hover {

    background-color:#cc0000; color:#ffff00; }

    a.vrsta2:active {

    background-color:#fff; color:#000; }

  • Grupiranje selektora

    Kada nekoliko selektora dijeli odreena svojstva, postoji mogunost njihova grupiranja u popis odvojen zarezima. To se uobiajeno primjenjuje radi preglednosti zapisa i jednostavnosti manipulacije svojstvima. Razmotrimo sljedei primjer:

    Namjera nam je definirati oznake naslova , i , veliinom i tipom fonta. Svi naslovi imaju isti tip fonta, ali su razliite veliine.

    h1 { font-family:sans-serif;

    font-size:16px; } h2 { font-family:sans-serif;

    font-size:14px;

    } h3 { font-family:sans-serif;

    font-size:12px;

    }

    Ako kod ovakvog zapisa elimo promijeniti tip fonta definiranog za naslove, to je potrebno napraviti na tri mjesta. Jedna od uloga CSS-a je i da promjene svojstava uini to jednostavnijim, upravo zato je predviena mogunost grupiranja selektora. U ovom sluaju to biste napravili sljedeom definicijom:

  • h1, h2, h3 { font-family:sans-serif;

    } h1 { font-size:16px; } h2 { font-size:14px;

    } h3 { font-size:12px;

    }

    U praksi se selektori koji dijele ista svojstva redovito grupiraju.

    2.4. Nasljeivanje

    Podsjetimo se - HTML hijerarhijsko stablo.

  • Slikom HTML hijerarhijskog stabla moemo sagledati nasljeivanje, jo jedno vano svojstvo CSS-a. Elementi koji su nie u stablu - tzv. potomci - nasljeuju svojstva od svojih roditeljskih elemenata.

    Ukoliko po primjeru sa slike imamo definiran sljedei selektor:

    td { color:red;

    }

    tada e cjelokupni tekst unutar stupca tablice biti crvene boje, bez obzira bio on unutar paragrafa ili elementa popisa.

    Naravno, ako je na nekom od elemenata - potomstva primijenjen neki drugi stil, taj stil ima prioritet pri prikazivanju.

    Razmotrimo jo jedan tipian primjer koritenja nasljeivanja:

    body { font-size:10pt } h1 { font-size:120% }

    Budui da je unutar oznake , veliina znakova unutar oznake bit e 12pt.

  • 2.5. Kaskade

    Vidjeli smo kako CSS moemo na razliite naine povezati s dokumentom. U odreenim uvjetima moe se dogoditi da vie selektora s istim atributima, ali razliitim svojstvima, identificiraju isti element na stranici. Koje od pravila e se tada primjenjivati definirano je kaskadnim svojstvima CSS-a. Iako postoji egzaktan nain izrauna koji selektor u kojoj situaciji prevladava, njegova sloenost izlazi iz okvira ovog predavanja. Meutim, moemo postaviti prioritetni redni popis, koji u veini sluajeva daje eljen rezultat. Na prvom mjestu su selektori s najveim prioritetom:

    1. stilovi pridijeljeni atributom style 2. id selektori 3. klasni selektori i pseudoklase 4. kontekstni, pa jednostavni selektori.

    Na sljedeem primjeru prikazan je prioritet selektora:

    h1 { color:blue; } #naslov { color:red; } .plavo { color:blue; }

    Lorem ipsum Lorem ipsum dolor sit amet, consectetur adipisicing

    elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • Kod oznake naslova tekst je crven jer je id selektor #naslov veeg prioriteta od jednostavnog selektora h1. Kako je u paragrafu tekst definiran atributom style, koji je veeg prioriteta od klasnog selektora .plavo, tekst je takoer crvene boje.

    2.6. CSS model kutije

    Elemente na stranici CSS tretira kao posloene kutije - pravokutnike - koji se na stranici slau jedan iza drugog ili jedan ispod drugog. Izgled kutije i njezina svojstva definirani su sljedeim prikazom:

    CSS model kutije.

    Iako na prvi pogled razmatranje, primjerice, paragrafa kao kutije ne izgleda logino, vrlo brzo se mogu uoiti prednosti takvog naina predoavanja sadraja. Naime, bez CSS-a nismo u mogunosti na jednostavan nain formatirati prikaz sadraja paragrafa.

    Primjerice, kako prostor izmeu dva paragrafa uiniti veim? Bez CSS-a to bismo mogli napraviti dodavanjem nekakvih razmaknica. U te svrhe su se esto koristile prozirne sliice poznatije pod imenom spacer.gif.

    CSS model koji paragraf tretira kao kutiju nudi puno jednostavnije rjeenje - definiranje gornje i donje margine.

  • p { margin-top:5px; margin-bottom:20px; padding-left:30px;

    }

    Kao ishod moete vidjeti prikaz na sljedeoj slici. Bijeli okvir je sadraj paragrafa, a utom su prikazane margine i odmaci.

    Prikaz paragrafa.

  • 2.7. CSS elementi

    Elemente u CSS-u moemo podijeliti na tri grupe. To su:

    blok elementi (eng. block level elements) linijski elementi (eng. inline elements) popisi (eng. lists).

    Blok elementi

    To su elementi koji su u dokumentu odvojeni od ostalih elemenata to ih okruuju. Predefinirano se ponaaju tako da sljedei element zapoinje u novoj liniji. Tipian primjer ovog tipa elemenata su i , koje ste esto susretali u prethodnim lekcijama.

    Predefinirano ponaanje blok elementa - paragrafi se uvijek prikazuju sloeni jedan ispod drugoga.

  • Linijski elementi

    Za razliku od blok elemenata, linijski elementi dolaze u nizu, jedan za drugim. Tipian primjer su elementi i .

    Predefinirano ponaanje linijskih elementa - linkovi se uvijek prikazuju u nizu s okolnim tekstom.

    Popisi

    Popisi su blok elementi, koji, osim blok svojstava, imaju i grafiku ili brojanu oznaku ispred teksta.

  • 2.8. Generiki kontejneri SPAN i DIV

    Oznaka span

    Element je linijski generiki kontejner. Smisao generikih kontejnera je strukturirano obuhvaanje i formatiranje raznih elemenata koje mogu sadravati. Za razliku od oznaka koje su predefinirane - , , ... - definiranje zadae generikih kontejnera preputeno je dizajneru.

    Tipian primjer kontejnera je formatiranje nekolicine rijei u tekstu.

    p { font-size:11px;

    } .istaknuto { font-size:18px; font-weight:bold; border:1px solid #000; }

    Lorem ipsum dolor, sit amet.

    Lorem ipsum dolor sit amet...

    Oznaka div

    Element je blok generiki kontejner. Najee slui za obuhvaanje vie blok ili linijskih elemenata unutar jedne strukture koja dijeli zajedniko formatiranje. Primjer uporabe ovog elementa su prikazi CSS i HTML koda.

    /*ovaj kod je prikazan u kontejneru definiranim sljedeim stilom*/ .csskod { padding:5px; margin:0;

    width:380px;

  • color:#CC0000; background-color:#FFFFCC; font-family:courier, mono;

    text-align:left;

    border-width:1px; border-style:dashed; border-color:#455372; }

    Zbog jednostavnosti uporabe i velike fleksibilnosti kod formatiranja raznog sadraja, pri izradi stranica generiki kontejneri se esto koriste i tamo gdje to nije potrebno. Nemojte pretjerati s uporabom. Primjerice, ukoliko elite formatirati tekst s okvirom, nemojte postavljati tekst u ili kontejner kojem ste dodali okvir - sjetite se da se okvir moe definirati i u paragrafu, koji je ve ionako predvien za formatiranje teksta.

  • 3. CSS SVOJSTVA

    Podsjetimo se kako radi CSS. Svaki stil se sastoji od selektora i njima pridruenih parova svojstva i vrijednosti:

    p { /* p je selektor */ font-family:"Courier New", Courier, mono; } .stil { color:#CC0000; /* color je svojstvo */ font-size:24px; /* 24px je vrijednost */ font-weight:bold;

    }

    Specifikacija CSS-a definira itav niz svojstava i njihovih vrijednosti. Svojstva se po svom djelovanju mogu grupirati u cjeline. Detaljnije emo razmotriti sljedee kategorije:

    svojstva fonta svojstva teksta svojstva boja i pozadina svojstva CSS kutije svojstva popisa pozicioniranje (smjetanje).

  • 3.1. Svojstva fonta

    Ovo su, vjerojatno, najee koritena svojstva, jer bez obzira na dizajn i namjenu stranice, tekst se zasigurno nalazi na veini od njih.

    font-family

    Ovo svojstvo sugerira pregledniku kojim fontom e se prikazivati tekst u dokumentu. Problem nastaje ako korisnik na raunalu nema instaliran potreban font. CSS definira pet generikih porodica fontova - serif, sans-serif, cursive, monospace i fantasy. Pri definiranju moemo koristiti neke od njih:

    body { font-family:monospace;

    }

    ili, to je preporuljivo, moemo koristiti stvarna imena fontova:

    body { font-family:"Courier New", Courier, mono;

    }

    U ovom sluaju preglednik e prvo pokuati prikazati tekst fontom Courier New, a ako njega nema, onda fontom Courier i tek onda, ako prva dva fonta nisu instalirana, prikazati e tekst fontom iz obitelji mono.

    font-weight

    Svojstvo koje definira debljinu znakova. Moe poprimiti sljedee vrijednosti: normal, bold, bolder, lighter, 100, 200, 300, 400, 500, 600, 700, 800, 900. Vrijednost bolder je jedan stupanj deblja vrijednost od vrijednosti postavljene za taj element. Slino, vrijednost lighter je jedan stupanj tanja od inae postavljene vrijednosti. Najee se koriste vrijednosti normal i bold. Bolder, lighter i brojane definicije debljine fonta nisu sigurne za koritenje jer ih preglednici razliito prikazuju - najee do 500 za normalne, a 600, 700, 800 i 900 za deblje fontove.

  • font-size

    Definira veliinu fonta. Moe poprimiti bilo koju definiranu vrijednost veliine (12px, 10pt, 2em...) ili neku od kljunih rijei (xx-small, x-small, small, medium, large, x-large, xx-large). Budui da se svojstvo nasljeuje, moemo pisati sljedee:

    body { font-size:10pt;

    } p { font-size:150%; }

    U ovom primjeru paragraf nasljeuje veliinu definiranu selektorom body, pa bi tekst u paragrafu bio prikazan fontom veliine 15pt.

    font-style

    Sugerira pregledniku da prikae tekst kao normal ili kao italic. Postoji jo i vrijednost oblique, ali nju preglednici prikazuju isto kao italic.

    font-variant

    Moe poprimiti vrijednosti normal ili small-caps. Koritenjem small-caps dobije se efekt teksta pisanog velikim slovima, ali fontovima razliitih veliina. Primjerice, u sljedeoj reenici prva slova svih rijei pisana su velikim slovima:

    p { font-variant:small-caps;

    } Lorem Ipsum Dolor Sit Amet

    LOREM IPSUM DOLOR SIT AMET

  • Skraeni selektor

    Sva ova svojstva mogu se navesti preko skraenog selektora font, na sljedei nain:

    p { font:italic small-caps 12px Verdana, Helvetica, sans-serif;

    }

    3.2. Svojstva teksta

    Ova svojstva definiraju razmjetaj teksta u dokumentu.

    letter-spacing

    Ovo svojstvo definira razmak izmeu pojedinih znakova u tekstu.

    p { letter-spacing:0.5em; }

    Lorem ipsum dolor sit amet

    L o r e m i p s u m d o l o r s i t a m e t

    line-height

    Definira razmak izmeu dvije crte teksta (eng. baseline).

    p { font-size:9pt; line-height:26pt; }

  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor

    incididunt ut labore et dolore magna aliqua.

    text-decoration

    Opisuje dekoracije koje se dodaju tekstu. Moe poprimiti vrijednosti: none, underline, overline, line-through i blink. Boje dekoracija pojavljuju se u boji teksta.

    text-transform

    Pretvara slova iz koda u velika ili mala, ovisno o izabranoj vrijednosti svojstva. Mogue vrijednosti su capitalize, uppercase, lowercase. Capitalize postavlja poetno slovo u svakoj rijei u veliko slovo. Uppercase postavlja sva slova u velika, a lowercase u mala, bez obzira na izvorno slovo u kodu.

    p { text-transform:capitalize;

    } Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    text-align

    Vodoravno poravnanje teksta. Moe se primijeniti samo na blok elemente, a mogue vrijednosti su: left, right, center i justify.

    p { text-align:center;

    }

  • Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit,

    sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    text-indent

    Prvi redak paragrafa je obino uvuen za odreenu vrijednost. Ovo svojstvo poprima vrijednosti duine.

    p { text-indent:45px; }

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • 3.3. Svojstva boja i pozadina

    Pravi izbor boja i pozadine je neto to e, zasigurno, svako web sjedite uiniti atraktivnijim. Dok je sam izbor navedenih elemenata pri izradi web sjedita preputen vaem osobnom odabiru, ovdje emo vam pokazati kako postupak izbora uiniti lakim. Naime, postavljanje ovih parametara u CSS datoteku daje vam mogunost da s jednog mjesta, gotovo trenutno, promijenite izgled itavog web sjedita.

    color

    Postavlja boju teksta u zadanom elementu. Moe oznaavati i boju elementa - primjerice kod oznake .

    p { color:green;

    } Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    background-color

    Definira boju pozadine za zadani element. Boja pozadine se protee do granice elementa - bez obzira na odmak.

    div.primjer { background-color:#3C6; color:#000;

    padding:3px; border:1px solid #000; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

  • background-image

    Postavlja pozadinsku sliku u element. Ukoliko se primjenjuje s nie navedenim svojstvima, moe se definirati fiksni poloaj pozadinske slike ili ponavljanje po jednom od pravila.

    background-repeat

    Ponavljanje pozadinske slike. Moe poprimiti sljedee vrijednosti: repeat - ponavlja sliku; no-repeat - ne ponavlja sliku; repeat-x - ponavlja sliku po vodoravnoj osi; repeat-y - ponavlja sliku po okomitoj osi.

    div.pozadina { background-image:url("css.gif"); background-repeat:repeat-x; border:1px solid #000; height:150px; color:#c00; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    background-attachment

    Ovo svojstvo definira pomie li se pozadinska slika s elementom ili ne. Moe poprimiti vrijednost scroll - pomie se, ili fixed - ne pomie se. Primjerice, ukoliko elimo u tijelu dokumenta postaviti fiksnu pozadinu, moemo to napraviti sljedeim kodom:

    body { background-image:url("css.gif"); background-repeat:no-repeat; background-attachment:fixed;

    }

  • background-position

    Pozadinska slika predefinirano se postavlja u gornji lijevi kut dokumenta. Background-position je svojstvo koje omoguava postavljanje poetnog poloaja od kojeg e se postaviti slika. Moe poprimiti vrijednosti top, center, bottom, right, center, left ili postotke, odnosno udaljenost od gornjeg lijevog kuta.

    background

    Skraeno svojstvo. Mogue je navesti sva navedena svojstva bez obzira na redoslijed navoenja:

    body { background:url("css.gif") no-repeat fixed; }

    3.4. Svojstva CSS kutije

    3.4.1. Margine

    Margine (rubnice) odreuju udaljenost CSS kutije, odnosno elementa, od ostalih elemenata na stranici. Ova svojstva poprimaju vrijednosti duina koje mogu biti izraene u bilo kojoj doputenoj mjernoj jedinici. Margine se mogu definirati ili sa sve etiri strane pojedinano, ili skraenim svojstvom.

    margin-top

    Gornja margina - udaljenost od gornjeg elementa.

    margin-right

    Desna margina - udaljenost od desnog elementa.

    margin-bottom

    Donja margina - udaljenost od donjeg elementa.

  • margin-left

    Lijeva margina - udaljenost od lijevog elementa.

    Ukoliko, primjerice, imamo jedan element , koji elimo prikazati odmaknutim od rubova dokumenta, moemo to napraviti koristei ve navedena svojstva:

    div { margin-top:15px; margin-right:70px; margin-bottom:5px; margin-left:40px;

    border:1px solid #000; background-color:#99CCFF; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    margin

    etiri pojedinane margine mogu se zamijeniti skraenim svojstvom, koje bi se tada, za prethodni sluaj, definiralo na sljedei nain.

    div { margin:15px 70px 5px 40px; }

    Ukoliko elimo jednaku marginu za sve strane elementa, moemo pisati:

    div { margin:5px; }

  • 3.4.2. Odmaci

    Odmak je udaljenost od granice CSS kutije do sadraja. Slino kao i kod margina, postoje etiri odmaka i skraeno svojstvo. Ukoliko nije eksplicitno definirana, predefinirana vrijednost odmaka je 0.

    padding-top

    Odmak od gornje granice.

    padding-right

    Odmak od desne granice.

    padding-bottom

    Odmak od donje granice.

    padding-left

    Odmak od lijeve granice.

    Razmotrimo opet element div iz prethodne lekcije, pa mu uz postojee margine dodajmo i odmak:

    div { padding-top:15px; padding-right:65px; padding-bottom:35px; padding-left:65px;

    margin-top:15px; margin-right:70px; margin-bottom:5px;

  • margin-left:40px; border:1px solid #000; background-color:#99CCFF; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    Vidljivo je kako tekst, zbog odmaka, prelazi u nov red, ali se boja pozadine, bez obzira na odmak, protee do granice elementa.

    padding

    Kao i kod margina, i ovdje je mogue definirati odmak na drugi nain:

    div { padding:5px 10px 15px 20px; }

    Odnosno, ukoliko je odmak sa svih strana jednak:

    div { padding:5px; }

  • 3.4.3. Granice

    CSS standard definira niz svojstava kojima je mogue opisati granicu elementa. Mogue ih je podijeliti u etiri grupe: irina granice, boja granice, izgled granice i skraena svojstva.

    Svojstva irine granice

    Slino kao i kod prethodnih svojstava, i ovo se svojstvo dijeli na etiri poloaja - gore, desno, dolje i lijevo.

    div { border-top-width:2px; border-right-width:4px; border-bottom-width:6px; border-left-width:8px;

    border-style:solid; border-color:#000; background-color:#99CCFF; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    Ili za jednaku irinu svih etiriju granica:

    div { border-width:2px; }

  • Svojstva boje granice

    Boja granice takoer se moe definirati zasebno za svaku od etiri granice.

    div { border-top-color:red; border-right-color:green; border-bottom-color:blue; border-left-color:yellow;

    border-width:6px; border-style:solid; background-color:#99CCFF; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    Ili za istu boju svih etiriju granica:

    div { border-color:red;

    }

  • Svojstva izgleda granice

    Svojstvo izgleda granice moe poprimiti sljedee vrijednosti: none, hidden, dotted, dashed, solid, double, groove, ridge, inset, outset. Ponovno imamo mogunost definicije za svaku od granica zasebno:

    div { border-top-style:hidden; border-right-style:dotted; border-bottom-style:dashed; border-left-style:solid;

    border-width:6px; border-color:#000; background-color:#99CCFF; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    Ili zajedniko svojstvo za sve etiri granice:

    div { border-style:dotted;

    }

  • Skraena svojstva granice

    Sva navedena svojstva moemo postaviti skraeno za pojedinanu granicu:

    div { border-top: 2px solid #000; border-right:4px dotted red; border-bottom:6px dashed #fc0; border-left:6px groove #0c0; }

    Lorem ipsum dolor sit amet

    Lorem ipsum dolor sit amet

    Ili za sve etiri granice u jednoj definiciji:

    div { border:2px dotted #000;

    }

  • 3.4.4. Dimenzije

    Dimenzije CSS kutije definirane su irinom i visinom sadraja:

    width

    Definira irinu sadraja.

    height

    Definira visinu sadraja.

    irina i visina sadraja moe biti postavljena na bilo koji blok element, bez obzira na dimenzije koje bi taj element inae zauzeo. Primjerice, u sluaju CSS ikonice:

    img.ikona { height:165px; width:120px; }

  • 3.5. Svojstva popisa

    Ukoliko uz oznaku moemo navesti jo poneku HTML oznaku kojoj se dolaskom CSS-a znatno poveala uporaba, onda su to sigurno popisi. Mogunost formatiranja koje je donio CSS omoguile su da se popisi, od obinog elementa za nizanje teksta, pretvore u moan alat.

    Popisi se sastoje od , odnosno oznake, koje ustvari ine blok element, te od jedne ili vie oznaka koje predstavljaju oznaavaju elemente popisa. Svaku od ovih oznaka moemo zasebno formatirati.

    list-style-type

    Definira tip grafikih oznaka koji e biti prikazan ispred pojedinog elementa popisa. Moe poprimiti sljedee vrijednosti: disc, circle, square, decimal, lower-roman, upper-roman, lower-alpha, upper-alpha, none.

    ul { list-style-type:square;

    }

    Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • list-style-image

    Ovo svojstvo nam omoguava da popisu umjesto uobiajene grafike oznake dodamo sliku. Primjerice:

    ul { list-style-image:url(arrows.gif); } li { padding:4px; }

    Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    list-style-position

    Definira uvlaenje elemenata popisa. Moe poprimiti vrijednosti inside ili outside. Pretpostavljena vrijednost je outside.

    list-style

    Skraeno svojstvo za istovremen prikaz svih svojstava popisa. U ovom primjeru, ukoliko je slika nedostupna, prikazuje se circle:

  • ul { list-style:circle url(arrows.gif) outside; }

    3.6. Svojstva pozicioniranja (smjetanja)

    Pri koritenju apsolutnog, relativnog ili fiksnog pozicioniranja (smjetanja), moemo koristiti nie navedena svojstva.

    left

    Udaljenost od lijeve referentne toke - elementa ili prozora preglednika. Moe poprimiti vrijednost duine ili postotka duine ili vrijednost auto.

    top

    Udaljenost od gornje referentne toke - elementa ili prozora preglednika. Moe poprimiti vrijednost duine ili postotka duine ili vrijednost auto.

    div { position:relative;

    top:20px; left:50px; border:1px solid #000; }

    Lorem ipsum dolor sit amet

  • z-index

    Ukoliko se dva elementa prekrivaju, vrijednost ovog svojstva definira koji e element biti iznad, a koji ispod. Element s veom vrijednou uvijek se nalazi iznad.

    Svojstva ije vrijednosti poprimaju jedinice duina esto doputaju i negativne vrijednosti. Primjerice, left:-10px moe znaiti da se element prikae 10 piksela lijevo od mjesta na kojem bi se inae prikazao.

    3.7. Ostala svojstva

    Od niza svojstava CSS-a, ovdje smo napravili izbor jo nekolicine atraktivnih i ee koritenih:

    cursor

    Definira vrstu pokazivaa kada se on nae iznad elementa. Moe poprimiti vrijednosti: auto, crosshair, default, help, move, pointer, text, wait...

    div { cursor:crosshair;

    }

  • overflow

    Definira kako e se prikazati sadraj koji je vei od CSS kutije. Moe poprimiti vrijednosti: visible, hidden, scroll i auto. Primjerice, oznaka definirane visine, ali s vikom teksta, kao u sljedeem primjeru, bit e prikazana s trakom za pomicanje.

    div { width:180px; height:50px; overflow:auto;

    border:1px solid #000; }

    Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

    visibility

    Definira vidljivost elementa. Moe poprimiti vrijednosti visible - vidljiv, ili hidden - skriven. Ako se moda pitate zato biste skrivali element na stranici, odgovor lei u JavaScriptu - skriptnom jeziku koji u kombinaciji s CSS-om nudi neizmjerne mogunosti uljepavanja stranica dinamikim efektima.

  • display

    Svojstvo koje omoguava promjenu predefiniranog naina prikaza razliitih tipova elemenata. Moe poprimiti vrijednosti block, inline, list-item i none. Koristi se kad elimo, primjerice, blok element prikazati kao linijski. Ovdje je primjer kako elemente popisa prikazati u liniji:

    li { display:inline; }

    Lorem ipsum

    dolor sit

    amet

  • 4. CSS IZBORNIK

    Izrada izbornika web sjedita HTML kodom obino zahtijeva na desetke linija koda, formatiranje s pomou tablice i dodavanje raznih efekata koritenjem JavaScript-a. Ovdje smo za vas pripremili jednostavan CSS izbornik koji ukljuuje razne efekte, od mijenjanja boja do formatiranja podizbornika, i to sve bez navedenih elemenata.

    Izbornik je sastavljen od nekoliko linkova tipinih za male tvrtke. Sastavni dio izbornika je podizbornik, ovdje prikazan samo za jedan nadreen link. Konaan izgled koji elimo postii dan je sljedeim prikazom:

    4.1. Definiranje popisa linkova Prvi korak do cilja je definiranje popisa linkova. Popisi se zbog svojih CSS svojstava redovito koriste za kreiranje izbornika. Popis glavnog izbornika sastoji se od etiri linka:

    Naslovnica Proizvodi O nama Kontakt

    Naslovnica Proizvodi O nama Kontakt

  • Kako se podizbornik razlikuje od izbornika, linkove podizbornika dodajemo kao jo jedan popis.

    Naslovnica Proizvodi

    Proizvod 1 Proizvod 2 Proizvod 3

    O nama Kontakt

    Sada imamo definiran popis i slijedi njegovo formatiranje. Ovim smo i zavrili izmjene HTML koda, jer emo potpuno daljnje formatiranje izvriti CSS-om.

  • 4.2. Formatiranje popisa linkova Popis formatiramo jednostavnim (ul i li) i kontekstnim selektorima (ul li a i ul ul li a). Primjeujete da ovaj posljednji identificira samo one linkove koji su u elementu dvostrukog popisa (ul ul).

    Na oba popisa postavljamo sljedea svojstva:

    display:block - prikaz linkova jedan ispod drugog text-decoration - skidamo podcrtane linkove margin - marginom razdvajamo linkove padding - udaljavamo linkove width - definira irinu linka.

    ul, li { list-style:none; /* skida grafiku oznaku */ margin:0px;

    padding: 0px; } ul li a, ul li a:visited { display:block; text-decoration:none; margin:1px;

    padding:2px 0px 2px 5px; width:120px; } ul ul li a, ul ul li a:visited { display:block; text-decoration:none; margin:1px 1px 1px 15px; padding:2px 0px 2px 5px; width:108px; }

  • Sada imamo formatiran popis i slijedi dodavanje boje i biranje efekta uz linkove.

    4.3. Stiliziranje popisa linkova Pored samog razmjetanja elemenata na stranici, izbor boja i dodavanje ukrasa iskljuivo pripada poslu web dizajnera. Ovdje se moe vidjeti snaga CSS-a, jer web dizajner, bez obzira na napisan kd, mijenjanjem CSS-a u potpunosti moe promijeniti izgled popisa.

    Popis emo obojiti modrom bojom, znakove emo podebljati, a kao ukras i podlogu za dinamiki efekt, koristit emo lijevu granicu linka. Postavit emo je na debljinu od 6 piksela za linkove glavnog izbornika, odnosno 4 piksela za linkove podizbornika, definirati liniju (vrijednost solid) i postaviti joj boju koju smo dodijelili slovima.

    ul, li { list-style:none;

    margin:0px;

    padding: 0px; } ul li a, ul li a:visited { display:block; text-decoration:none; margin:1px;

    padding:2px 0px 2px 5px; width:120px; color:#336; /* boja linkova */ font-weight:bold; /* podebljana slova */ border-left:6px solid #336; /* granica */

  • } ul ul li a, ul ul li a:visited { display:block; text-decoration:none; margin:1px 1px 1px 15px; padding:2px 0px 2px 5px; width:108px; color:#336; /* boja linkova */ font-weight:bold; /* podebljana slova */ border-left:4px solid #336; /*granica*/ }

    Predefinirana vrijednost irine granice linka je 0 piksela, tako da nam je ovdje potrebno samo postaviti debljinu lijeve granice. Ovim smo dobili sljedei prikaz:

    Oblikovani popis je tu. Ono to nam slijedi je zavravanje dodavanjem dinamikog efekta.

  • 4.4. Dodavanje dinamikog efekta Iako su linkovi gotovi i funkcionalni, nedostaje im neto to u dananje vrijeme uobiajeno susreemo kod veine izbornika. Pomicanjem pokazivaa mia, korisnici su navikli da im nekakav efekt oznai iznad kojeg linka se nalazi pokaziva. Takvi efekti, osim uljepavanja, imaju i ulogu lake orijentacije i snalaenja meu linkovima.

    Dinamike efekte postiemo dodavanjem pseudoklasa u stil. Upotrijebit emo pseudoklasu hover, a mijenjat emo boju lijeve granice elementa.

    ul, li { list-style:none;

    margin:0px; padding: 0px; } ul li a, ul li a:visited { display:block; text-decoration:none; margin:1px;

    padding:2px 0px 2px 5px; width:120px; color:#336; font-weight:bold; border-left:6px solid #336; } /* dinamiki efekt za izbornik */ ul li a:hover { text-decoration:none; margin:1px;

    border-left:6px solid #ccf; } ul ul li a, ul ul li a:visited { display:block; text-decoration:none;

  • margin:1px 1px 1px 15px; padding:2px 0px 2px 5px; width:108px; color:#336; font-weight:bold; border-left:4px solid #336; } /* dinamiki efekt za podizbornik */ ul ul li a:hover { text-decoration:none; margin:1px;

    border-left:4px solid #ccf;

    }

    Dodavanjem ovih klasa dobili smo konaan prikaz u kojem se linkovi mijenjaju kako prelazimo miem preko njih.

  • 5. CSS TABOVI

    U ovoj e lekciji biti zorno prikazan i potanko objanjen jednostavan nain izrade navigacijskih elemenata koji bi kao jedinstvena navigacijska cjelina ili sustav trebali podsjeati na jahae, odnosno "tabove", kako im je danas uvrijeeno ime, uvezeno iz suvremenog internetskog jezika. Krajnji cilj je doi do sljedeeg sustava za navigaciju.

    Jahai su ve due vrijeme jedno od eih rjeenja internetske navigacije. Iako se danas, dakako, moe pronai cijeli niz sloenih rjeenja njihove izrade, meu kojima su naroito popularna ona koja kombiniraju CSS i grafike elemente, u ovoj je lekciji prikazana uporaba iskljuivo CSS-a. Valja posebno napomenuti da je ovakav pristup izabran ne samo zbog jednostavnosti ve i radi potpuno jednakog prikaza u web preglednicima koji podravaju CSS, to se esto ne postie kod primjene sloenih rjeenja.

    5.1. Prvi korak

    Osnovu naeg rjeenja ini nesortiran popis linkova - koriste se i tagovi -

    1. korak

    2. korak 3. korak

    4. korak 5. korak

    koja u prikazu daje linkove nanizane jedan ispod drugog.

    1. korak

    2. korak

    3. korak 4. korak

    5. korak

    Da bi se linkovi prikazali jedan do drugog, uvodi se novi selektor:

  • #jahaci li { display:inline; /*postavlja popis u redak*/ }

    koji se dodaje na nesortiran popis:

    1. korak

    2. korak 3. korak 4. korak

    5. korak

    ime se u prikazu dobije eljeni raspored linkova.

    5.2. Drugi korak

    U ovom koraku linkovima se dodaje pozicioniranje (smjetanje), boja znakova te crta koja se koristi za razgranienje od sadraja. Smjetanje se uspostavlja marginama i odmacima, a kao crta irine 2 piksela upotrebljava se donja granica nesortiranog popisa.

    #jahaci { color:#000; /* linija razgranienja od sadraja */ border-bottom:2px solid #455372; margin-top:50px; margin-right:0px; margin-bottom:0px; margin-left:0px;

  • padding:1px; padding-left:30px;

    }

    U samom kodu popisa i dalje nije potrebno vriti bilo kakve promjene jer je cijela uputa definirana implicitno putem id-a nesortiranog popisa:

    1. korak

    2. korak 3. korak

    4. korak 5. korak

    ime se u prikazu dobije linija s linkovima poredanim jedan do drugog.

    5.3. Trei korak

    Izgled pojedinog jahaa uspostavlja se CSS uputom izvedenom grupiranjem. Jedan jaha prikazuje jedan link, a izgled se moe prilagoditi uporabom #jahaci li a selektora.

    #jahaci li a { color:#000;

    background:#d9dbe1; /*okvir jahaa*/ border:2px solid #455372; padding:3px 5px 1px 5px; margin:0px;

  • /*bez podcrtavanja*/ text-decoration:none;

    }

    Ovako definirana CSS uputa rezultira konanim izgledom jahaa. U sljedeem koraku preostaje dodati dinamiku promjene izgleda linka CSS uputi i zavriti sustav.

    5.4. etvrti korak

    Dinamika promjene izgleda linka pripada kategoriji kojoj je vano posvetiti posebnu pozornost. Naime, osim same atraktivnosti kojoj se obino tei, promjena izgleda ima i funkcionalan znaaj jer korisniku olakava izbor mjesta na koje se moe kliknuti.

    Primjenu dinamikih elemenata na linkovima, kao i u prethodnom primjeru, postiemo upotrebom pseudoklasa active i hover - kako bismo promijenili izgled linka bilo klikom, bilo prelaskom mia preko linka.

    #jahaci li a:hover { border-bottom:2px solid white; background-color:#eee; color:#455372; } #jahaci li a:active { color:#c00;

    }

    Rezultat primjene pseudoklase vidljiv je ako miem prelazimo preko linkova.

  • 5.5. Peti korak

    Za kraj je potrebno dodati efekt koji boju pozadine na aktivnom jahau ini jednakom boji stranice. To se postie upotrebom jo jedne CSS klase:

    #jahaci li a.aktivni { color:#000;

    background:#fff; border-bottom:2px solid white;

    }

    Ova klasa se dodaje na link koji pokazuje na trenutnu stranicu (u naem primjeru na peti korak).

    1. korak

    2. korak 3. korak

    4. korak 5. korak

    Konaan izgled navigacije:

  • Cjelokupna CSS uputa:

    #jahaci { color:#000;

    border-bottom:2px solid #455372; margin-top:50px; margin-right:0px;

    margin-bottom:0px;

    margin-left:0px; padding:1px;

    padding-left:30px;

    } #jahaci li { display:inline;

    } #jahaci li a { color:#000; background:#d9dbe1; border:2px solid #455372; padding:3px 5px 1px 5px; margin:0px; text-decoration:none;

    } #jahaci li a:hover { border-bottom:2px solid white;

    background-color:#eee;

    color:#455372; } #jahaci li a:active { color:#c00;

    } #jahaci li a.aktivni { color:#000;

    background:#fff;

    border-bottom:2px solid white;

    }

  • 6. OKOMITI GRAFOVI

    Koristei slian nain prikaza popisa kao to je onaj prezentiran u prethodnoj lekciji, moemo postii prezentaciju okomitih grafova. Prvo emo definirati okvir za prikaz grafa. Graf prikazujemo u sloju koji je definiran sljedeim stilom:

    #graf { color:#fff;

    background:url(images/graph_back.gif); background-position:bottom;

    width:330px;

    height:180px; border:1px solid #000;

    padding:0px;

    margin:0px;

    margin-left:40px; position:relative;

    }

    Pozadina sloja definirana je sliicom veliine 1x10 piksela. Na vrhu sliice, inae svijetlo sive boje, nalazi se jedan piksel tamne boje. Koristei ovakvu sliicu za pozadinu, nizanjem dobijemo izgled linija udaljenih 10 piksela. Ovdje je ta prikazana sliica uveana etiri puta:

    Izgled okvira za graf moete vidjeti na sljedeem prikazu:

  • Trake grafa definiramo kao popis s vrijednostima. Popis je definiran sljedeim CSS-om:

    #graf ul { width:330px; height:180px; padding:0px; margin:0px; } #graf ul li { position:absolute; text-align:center; background-color:#333366; padding:0px; margin:0px; width:30px; height:100px; list-style-type:none; bottom:0px; }

    Primjeujete sljedee:

    elementi popisa #graf ul li definirani su apsolutnim poloajem. Tako smo postigli fleksibilnost pomicanja, jer svakom pojedinom elementu popisa moemo odrediti zaseban poloaj.

    text-align ima vrijednost center, tako da se brojke nau na sredini trake. background-color postavlja boju trake. margin definira poloaj - u ovom sluaju odmak ulijevo. bottom - pozicionira (smjeta) trake na dno okvira u kojem se nalazi popis.

    Osim dodavanja samog popisa u HTML kd, potrebno je postaviti poloaj, te definirati visinu pojedine trake. To radimo sljedeim kodom:

  • 100 80 60 120 90

    U linijskom stilu dodano je svojstvo left, ime se postavlja pomak od lijeve granice sloja, i svojstvo height, kojim se definira visina pojedine trake. Visina u pikselima odgovara njenoj vrijednosti. Konaan izgled grafa je: