Mala škola web dizajna za totalne početnike – Lekcija 2 – osnove CSS-a

Mala škola web dizajna za totalne početnike – Lekcija 2 – osnove CSS-a

Zadnji puta smo stali na ovome. Znači napravili smo kostur naše stranice. Odnosno definirali smo strukturu stranice, kao što vidite, stranica baš i ne izgleda nešto posebno. Da bi ju malo uljepšali moramo se koristiti CSS-om. Ako nam je HTML kostur, onda bi CSS bio meso koje ćemo staviti na taj kostur, u dizajnerskom smislu, naravno.

CSS je skraćenica za Cascading Style Sheets. Za ovo baš i nema nekog pravog prijevoda na naš jezik, barem ne nekog smislenog, možda sam ja u krivu, ako netko zna neki dobar prijevod neka ga svakako upiše u kao komentar na ovaj članak. Tako da ćemo mi koristiti ovu skraćenicu.

CSS služi da bi sve one tagove koje smo naveli u prošloj lekciji doveli u red, da bi ih oblikovali da budu oku ugodniji i na kraju upotrebljiviji. Postoji nekoliko načina kako možemo raditi sa CSS-om, ja ču u ovim lekcijam prikazati samo jedan, i to onaj koji ja najčešće koristim i za koji mislim da je najbolji.

Pozivanje CSS-a

Mi ćemo u ovoj maloj školi raditi sa odvojenim CSS datotekama. To znači da ćemo imati jednu datoteku u kojoj ćemo definirati strukturu stranice (HTML) i jednu datoteku u kojoj ćemo definirati izgled stranice (CSS). Za početak moramo napraviti datoteku u koju ćemo upisivati CSS kod. Otvorite svoj omiljeni text editor, otvorite novi dokument u njemu i snimite ga kao stil.css. Znači, CSS datoteke imaju nastavak .css (zamisli!). Kada ste to napravili, otvorite .html datoteku iz prve lekcije (prva.html), u nju ćemo ubaciti sljedeći kod:

<link href="stil.css" rel="stylesheet" type="text/css" />

Ovaj kod ubacite odmah iznad < / head > taga. Znači mora biti unutar head taga, odnosno prije njegova završetka. Pomoću ovog koda smo rekli HTML dokumentu da za svoje oblikovanje koristi dokument koji smo nazvali stil.css.

CSS pravila

Kako HTML ima svoja pravila pri pisanju koda, isto tako ima i CSS. Upišite ovo u stil.css:

body{background:#ccc;}

Pokrenite prva.html i trebali dobiti nešto ovako.

Što se desilo? Kao što vidite podloga stranice se promjenila u sivu boju. Zašto? Zato što smo rekli da tag body ima sivu pozadinu. CSS je zapravo vrlo jednostavan glede naziva svojstava.

Svojstvo je naziv koji ćemo od sada koristiti za nazivanje “komandi” u CSS-u. U gornjem slučaju, svojstvo se zove background

Svojstva u CSS-u može bez problema razumjeti svatko tko donekle razumije engleski jezik, pošto su svojstva nazivana prema engleskim riječima. Background na engleskom znači pozadina. Ono što stavljamo ispred vitičaste zagrade ({) je objekt u HTML-u na koji želimo primjeniti neko svojstvo. Na gornjem primjeru smo dakle na body tag primjenili svojstvo pozadine, kojem smo dali vrijednost #ccc, odnosno upisali smo heksadecimalnu vrijednost sive boje. Ja ću u ovim lekcijama koristiti isključivo heksadecimalne vrijednosti boja, no ajmo čisto primjera radi pogledati kako smo ovo još mogli napisati:

body{background:#cccccc;} /*ovo je produžena verzija*/
body{background:gray;} /*kao što vidite možemo koristiti i engleske nazive za boju npr. red, white, black itd.*/
body{background:rgb(204, 204, 204);}/*možemo koristiti i RGB vrijednosti neke boje*/

Ispod se nalaze heksadecimalne vrijednosti nekih osnovnih boja:

  #000000
  #333333
  #666666
  #999999
  #CCCCCC
  #FFFFFF
  #FF0000
  #00FF00
  #0000FF
  #FFFF00
  #00FFFF
  #FF00FF

Ako koristite Dreamweaver za pisanje svog koda, onda će vam odabir boja biti poprilično lagan, pošto Dreamweaver pri upisu koda izbacuje meni s bojama i nakon što odaberete boju on sam upisuje njenu heksadecimalnu vrijednost.

Dreamweaver

Ako nemate Dreamweaver ili ga iz nekog razloga ne želite koristiti, možete se poslužiti nekim grafičkim programom poput Photoshopa i iz njega izvući i kopirati traženu heksadecimalnu vrijednost. Većina takvih programa ima prikaz boja u različitim vrijednosnim sustavima. A ako nema, zbilja nebi trebali koristiti takav program.

Photoshop

No, za sada dosta o bojama. Raščlanit ćemo malo onaj gornji primjer našeg prvog CSS unosa, dakle, kada smo napisali body odredili smo da browser ono što poslje toga upišemo primjeni na body tag, nakon toga smo otvorili vitičastu zagradu { , unutar vitičastih zagrada upisujemo sva svojstva koja želimo dodijeliti nekom elementu, nakon toga smo upisali ime svojstva – u našem slučaju background, i iza njega stavili dvotočje : čime smo označili početak unosa vrijednosti svojstva, upisali smo samu vrijednost – #ccc i zatvorili to svojstvo sa ;, nakon toga smo zatvorili to sve sa vitičastom zagradom } i time označili kraj unosa svojstava u body tag.

Znači pri pisanju našeg CSS dokumenta moramo poštovati neka pravila. Najbitnije je otvaranje i zatvaranje vitičastih zagrada, a zatim zatvaranje svojstava sa točka zarez. Nije bitno dali ćete sva svojstva pisati u istom redu

#fwd{margin:3px 0 0 0;height:24px; width:300px;font-size:10px; color:#999999;}

ili ćete svako pisati u posebnom redu

#menu ul li a:link, #menu ul li a:visited, li.close{
	display:block;
	height:77px;
	padding:20px 20px 0 20px;
	float:left;
	font:normal 26px  Arial, Helvetica, sans-serif;
	color:#003986;
	border:none;
	}

to ovisi o vama i sa vremenom ćete naučiti što vam je lakše. Ja pišem CSS zavisno o tome koliko ću svojstava imati za određeni element, ako će ih biti malo onda sve u istom redu, a ako će ih biti više svako u posebnom redu. Razmaci isto nisu toliko bitni. Vidjet ćete kasnije da je CSS vrlo fleksibilan glede načina pisanja koda.

Da bi CSS radio kako treba svojstva moraju biti zatvorena vitičastim zagradama i na kraju svagog svojstva mora doći točka-zarez. Ako vam nešto ne radi uvijek prvo pogledajte dali vam je kod ispravno napisan a tek onda tražite greške na drugim mjestima. Greške u upisu koda su najčešće greške.

Nadalje, pri pisanju CSS koda ponekad je poželjno komentiranje, komentari su dijelovi CSS-a koje browser ne čita ali služe nama da bi se lakše snalazili u onome što smo napisali, ja sam već koristio komentare kada sam vam pokazao kako možete još napisati da nam pozadina bude sive boje. Komentar počinjemo sa /* a završavamo sa */ kao npr.:

 /*ovo je komentar*/ 

Osnovna CSS svojstva

Border

Postoje neka osnovna CSS svojstva, koja ćemo obraditi u ovoj lekciji. Za početak ćemo promjeniti boju naše pozadine u bijelu. Sivu sam iskoristio samo kao primjer. Znači izmjenit vaš CSS dokument da izgleda ovako:

body {background:#fff;}

Sada bi trebali dobiti nešto ovako.

Znači stranica se vratila u prijašnje stanje, opet smo upisali da heksadecimalni kod boje ima skraćenu vrijednost.

Kada se heksadecimalni kodovi sastoje od 6 jednakih znamenki ili slova, dovoljno je da upišemo samo prva 3 slova ili znamenke.

Ok, sada ćemo se upoznati sa još jednim svojstvom, to svojstvo se naziva border ili ti po naški, obrub. Ovo svojstvo ćemo primjeniti na naše odlomke, odnosno na p tagove. U vaš CSS dodajte ovaj kod ispod onoga što smo dosad upisali:

p{border:1px solid #ff0000;}

I trebali bi dobiti ovako nešto.

Mi smo sa ovim kodom browseru rekli da želimo da nam svi p tagovi na stranici imaju obrub debljine 1px, punu liniju (solid) i da budu crvene boje (#ff0000). U većini tutoriala o CSS su vam svojstva pokazana u svom produženom obliku. Ja sam odlučio odmah prikazivati skraćeni oblik. Pošto mislim da to nije toliko teško za shvatiti. Produženi oblik bi ovako izgledao:

p{
   border-width:1px;
   border-style: solid;
   border-color:#FF0000;
} 

Znači dobili bi totalno istu stvar a napisali bi puno više koda. Bitno je za zapamtiti, da svako CSS svojstvo mora imati neke svoje vrijednosti. U gornjem primjeru vidimo da border ima tri osnovne vrijednosti, a to su, debljina obruba, vrsta obruba i boja obruba. Napomenuo bih da je vrsta crte definitvno najzanimljivija vrijednost ovog svojstva, probajte se s time malo igrati, znači, probajte u gornji kod upisati nešto od ovoga i pogledajte što će se desiti: dashed, dotted, double, groove, ridge. Svakako isporobajte dashed, to je iscrtkana linija, za ove ostale ne mogu garantirati pošto se u nekim browserima ili ne prikazuje dobro ili se uopće ne prikazuje, istočkana linija odnosno dotted će se dobro prikazivati u Firefoxu, ali u Internet Exploreru neće.

Ljepota CSS-a je u sljedećem, recimo da želimo da nam naši odlomci imaju obrube samo gore i dolje, da budu debljine 4px, iscrtkane i zelene boje, to bi napisali ovako:

p { 
     border-top: 4px dashed #00ff00;
     border-bottom: 4px dashed #00ff00;
}

I dobit ćemo ovo.

Primjetie opet kako je CSS zapravo jednostavan glede svojih komandi, zanči ako upišete samo border, to podrazumjeva da ćete imati obrub sa svih strana, no ako upišete border-top to znači da želite napraviti samo gornji obrub, top znači gore na engleskom, tako da uz border-top imate još border-bottom (doljni obrub), border-left (lijevi obrub) i border-right (desni obrub).

Zadatak:
Vaš zadatak će sada biti da napravite da odlomci, odnosno p tagovi imaju gornji i donji obrub u crvenoj boji, da budu debljine 2px i da budu pune linije. Lijevi i desni obrubi će biti crtkani, debljine 5px i plave boje. Riješenje ovog zadatka će biti u idućoj lekciji.

Width i height

Ovo su možda 2 najjednostavnija svojstva u CSS-u width na engleskom znači širina, a height znači visina koja se određuje najčešće u pikselima, ali ima i drugih načina o kojima ćemo kasnije. Recimo da želimo da nam širina svih odlomaka bude 300px a visina 500px jednostavno ćemo dodati ove dvije linije u naš CSS kod pod definicju p taga:

     width:300px;
     height:500px;

Znači da nam sve ukupna definicija treba izgledati ovako:

p { 
     border-top: 4px dashed #00ff00;
     border-bottom: 4px dashed #00ff00;
     width:300px;
     height:500px;
}

i to će izgledati ovako.

Upisivanjem ove dvije linije smo rekli da želimo da nam širina odlomka bude 300px a visina 500px. Vrlo jednostavno.

Ako širina nekog HTML elementa nije određena, taj elemnt automatski poprima širinu stranice ili širinu nekog drugog elementa u kojem se nalazi. Visina će ovisiti o sadržaju koji se nalazi u tom elementu.

Eto to bi bilo to, što se tiče ove lekcije, znam da za sada ima dosta teorije i da jedva čekate da počnete raditi prave stvari, ali prvo moramo svladati neke osnove. U sljedećoj lekciji nastavljamo sa CSS svojstvima, probajte do tada riješiti onaj zadatak. Ako šta nije jasno, upišite to u komentare, napokon sam napravio da sistem komentiranja radi kako treba :) , Ajax baby, Ajax! Pozdrav i uživajte.

Povezani članci

  • http://www.web-coderz.com Davor

    Sviđaju mi se tutoriali, jasno i sažeto. Da li si možda razmišljao da lekciju razdijeliš u više manjih, možda bi bolje funcioniralo?

  • Ivan

    Možda i bi. Ali zapravo želim raditi što više video tutoriala i to počinjem od sljedeće lekcije, mislim da bi tako još bolje moglo funkcionirat, i da će bit lakše shvatljivo.

    Pozdrav

  • http://www.web-coderz.com Davor

    Jesi primjetio da netko na Croportalu dijeli negativne bodove. Ja sam na nuli, a ti čak u minusu :(

  • Ivan

    Nebi se previše oko toga zabrinjavo. Nije mi na Croportalu baš jasan taj sustav bodovanja. Evo danas je na listi najpopularnijih na prvom mjestu, netko sa 2 boda, a na drugom netko ko ima -1 bod i još uvjek je jedan od mojih članaka na listi najpopularnijih. Don’t worry be happy :)

  • http://www.kompkamp.net Radoslava

    Odlicno. Cestitke i hvala ti u svoje ime i u ime svih polaznika moje skolice racunara…:)

  • sim

    Ne znam kako su ostali odradili, ali slijedeći naputke iz ove vježbe nisam uspio dobiti ovdje navedene rezultate. Naime, kao da moja html datoteka uopće nije povezana sa css datotekom (ništa s bojama i borderima nisam uspio odraditi).
    Također, kopirajući djelove kodova iz prve (uvodne) vježbe, slika mi se nije prikazala sve dok nisam promijenio u (dok nisam maknuo navodnike).
    Dakle, mislim, možda u dijelu koda za povezivanje nešto nije kako treba.
    Može dodatna pomoć i naputak u vezi povezivanja html i css datoteke.
    Hvala!

  • Ivan

    Pozdrav Sim,

    problem je najvjerovatnije u tome što si radio samo copy/paste, ja sam tek nedavno skuzio da nesto nevalja sa prikazom koda na stranici, odnosno navodnoci nisu zapravo navodnici nego neki drugi znakovi koji samo slično izgledaju. Tako da bi ti riješenje bilo da sve napraviš ovdje kako piše, ali ne kopiraš kod nego ga sam upišeš ili promjeni sve navodnike u svom html dokumentu.

    Ukratko, navodnici su problem.

    Pozdrav

  • sim

    Da, zapravo, za jednu svrhu se u “<link href=…” koriste navodnici, a u neku drugu svrhu apostrofi.
    Sad, budući to nije svejedno (ni u kojem kodu), možda ne bi bilo loše, kad već radiš ovu tzv. “malu školu” (ko pojma nema, njemu je velika; npr. meni – hvala!), da tu negdje uvrstiš i osnovna pravila sintakse za html kod.

  • Leon

    sve pohvale vašem trudu, sažeto i razumljivo napisanom tutorijalu.

    ja imam jedan problem:( Pokušao sam dobiti ćčšžđ nakon navedeng standarda koji ste naveli, ali to je bilo bezuspješno.FF mi je prikazao ovo ccžšd:(

    ovo sam napisao i onda dobijem ccžšd a kada napišem 2 umjesto 1 dobijem cc??d.Molio bih Vašu pomoć, jer želim da mi se na stranici prikazuju naša slova.Hvala Vam unaprijed na odgovoru:)

    Još jednom sve pohvale Vašem trudu:)

  • Tomislav

    Kao prvo želin pohvaliti uloženi trud, stvarno jako dobro objašnjeno i dobro pogođena tema.
    a sad ja iman dva problema, pisa san sve kao i ti i opet mi neće piše ćčšž i neznam zašto ali u css napišen za background i to radi aposli toga napišen za okvir i neće mi radi

  • Ivan

    Pozdrav Tomisalv,

    ovako, pogledaj si gdje ti piše ovako nešto:
    meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″

    Znači svakako provjeri da na kraju piše UTF-8, a ako i onda ne dobiješ naša slova onda probaj umjesto UTF-8 napisati iso-8859-2, a ako ti ni to ne odradi onda probaj napisati windows-1250 – to bi trebalo 100% odradit ali najvjerovatnije neće raditi na računalima koji vrte Mac OS X ili Linux.

    Što se tiče drugog problema, tu ti ne mogu pomoći dok mi ne daš više informacija:
    Na koji si element primjenio border i background.
    Provjeri dali si sve dobro upisao.

    Pozdrav

  • zeljko

    ej mešter ne kužim di triba ubaciti, body{background:#ccc;} tj između ćega.
    hvala

  • Ivan

    @zeljko

    body{background:#ccc;} trebaš ubaciti u .css dokument. Nije bitno gdje, ali se u pravilu body tag definira na početku .css dokumenta.

    Pozdrav

  • http:bolnica.blogspot.com cvrkut

    Svakačast.Puno sam ovdje naučio.

  • Toni

    Puno pohvala za ove tutorijale! Stvarno su od velike pomoći. Samo nastavi sa radom, pa mozda i mi obicni smrtnici štogod naučimo:)

  • Razor

    Tutorijali su ti super svaka cast..
    nikad nisam radio ovo oko html pratio sam tekst i sve je islo glatko do ovog dijela kad treba postaviti sliku..
    pazi skinem sliku s neta..napravim mapu na desktopu nazovem je kako hocu sliku isto tako kako hocu..u biti shvatio sam kako kod funkcionise..ali meni nece na stranicu da izbaci sliku..
    neznam zasto..jel problem sto je ova mapa sa slikom na desktopu ili ona treba negdje posebno da se postavi..
    p.s.
    jos nesto kod css-a ovaj prvi dio gdje se stavlja siva pozadina ovaj kod upisemo tamo u css.datoteku koju otavara preko dreamweavera jel se ona save-a ponovo i ovaj html ne razumijem jer nece mi pokazati sivu pozadinu..
    izvini malo gnjavim ali sta je tu je..ucim hehe
    pozzz :)

  • Ivan

    @Razor

    Gle mapa sa slikom može biti bilo gdje, samo je stvar u tome da upišeš pravilnu putanju do te slike, znači moraš browseru reći točno gdje se nalazi slika da bi ju on mogao učitati. I to je najvjerovatnije tvoj problem. Najbolje je slike družati i mapi slike ili images koja se nalazi u mapi gdje ti je html i css. Tako da onda putanja do slike bude npr. images/ime-slike.jpg. Drugo pitanje baš ne razumijem. Probaj to malo bolje objasniti.

    Pozdrav

  • Ljubica

    Ivane mnogo vam hvala za ove lekcije, stvarno su mnogo dobro. Pronasla sam ih na internetu i odusevila se sto ovako nesto postoji.
    Evo zavrsila sam 2.lekciju i probala da uradim zadatak ali mi ne radi levi i desni border.

    p{
    border-top: 2px solid #ff0000;
    border-right: 5px dashed #blue;
    border-bottom: 2px solid #ff0000;
    border-left: 5px dashed #blue;
    width: 700px;
    }

    Malo sam promenila sirinu, valda to nije bitno?

  • Ivan

    Pozdrav Ljubica,

    ljevi i desni border vam ne radi zato što ste stavili “tarabu” (#) ispred boje.

    Ako boju pište u hexadecimalnom kodu onda ju pišete kao npr. #ff0000 ali ako ćete koristiti nazive boja kao npr. blue, red itd. Onda ne koristite znak #.

    Znači treba pisati ovako: border-right: 5px dashed blue

    Pozdrav

  • Quattro

    Sajt je fantastica, kao i tutorijali na njemu, samo napred!!!

    Gde na tastaturi mogu pronaci viticaste zagrade, ubih se trazeci?