Dizajniranje bez tablica za početnike #2 - Izbornici
Evo kao što sam obećao napravio sam video tutorial za izbornike i CSS. Ispričavam se odmah na kvaliteti zvuka i možda na još nekim problemima unutar videa. Imajte razumjevanja, ipak mi je ovo prvi ovakav tutorial.
Pošto ovdje kvaliteta i nije baš neka, možete ovaj video skinuti tako da odete na http://www.keepvid.com i zalijepite ovu adresu http://video.google.com/videoplay?docid=1425392176111052062&hl=en i tamo ćete moći izbirati dali ga želite skinuti u .flv .avi ili ipod formatu. Ja preporučujem .avi pošto ćete onda imati najbolju kvalitetu slike.
Nekoliko napomena na početku. Ovaj tutorial će biti malo kraći od onog prijašnjeg. Zašto? Zato što će uz njega ići i video tutorial, kojeg ću pokušati napraviti i postaviti još danas. Video tutorial ću raditi zato da bi vam bilo lakše shvatiti neke stvari, a i isto tako da mogu objasniti neke povezanosti i pravila puno brže i efikasnije nego da to radim u pisanom obliku. Ako prijem takvog tutoriala bude dobar nastavit ću raditi samo video tutoriale, pogledao sam i 74% ljudi koji su došli na prijašnji tutorial imaju neku vrstu brze veze na internet tako da mislim da to neće biti problem. Isto tako video tutoriali će se moći i skinuti da ga možete kasnije lakše ponovno pregledati. Ajmo sad na tutorial.
Početak
Ovaj tutorial je nastavak na prvi tableless tutorial koji sam napravio. Znači ako niste odradili prvi tutorial, odradite ga ili skinite gotovo dijelo.
Za ovaj tutorial će nam trebati još neke dodatne, većinom, grafičke datoteke koje ćete moći skinuti kada dođemo do tog dijela.
Ja sam preimenovao datoteke tableless.css i tableless.html u izbornik.css i izbornik.html. Naravno, čim napravite neku takvu promjenu morate promijeniti i pozive na datoteke, u ovom slučaju poziv na css datoteku u html datoteci, inače nam ova vježba neće uspjeti. Dakle promjenite ovu liniju koda koja vam se nalazi pri početku .html datoteke:
u ovo:
Naravno ako nećete promjeniti imena datoteka iz prošlog tutoriala, ovaj gornji korak vam je nepotreban.
Napraviti ćemo 3 izbornika. Jedan će biti horizontalni, jedan vertikalni a na jednom ćemo pokazati kako koristiti slike kao pozadine vaših izbora i kako te slike mjenjati kada miš pređe preko njih.
Izbornik #1 - Vertikalni
Sada na našoj prvoj stranici već imamo jedan vertikalni izbornik, ali on je malo prejednostavan, znači čisti tekst koji se podvuče kada kada pređemo preko njega mišem. Ono šro ćemo napraviti sada, je da ga malo uljepšamo. Da bi izbornik mogli pravilno pozivati dodat ćemo još jedan DIV u naš .html dokument. Ali tako da “omotamo” već postojeće elemente na stranici. Ti elementi su ul i li tagovi. Napravite ovako dodajte ovu liniju ispred < ul > taga:
Ovo smo napravili da bi lakše i smisleno mogli pozivati elemente izbornika u CSS-u. Sada ćemo otići u .css dokument (izbornik.css u mom slučaju) i definirati neka svojstva DIV elementa izbornik. Pošto nam se u .html dokumentu DIV izbornik nalazi unutar elementa lijevo, bilo bi dobro da i u .css dokumentu počnemo pisati ispod selektora za lijevi DIV:
width:200px;
float:left;
}
Znači samo smo odredili da će nam širina biti 200px i da izbornik pluta lijevo. Sada ćemo dodati sljedeći selektor. Pazite, ovo NE dodajete selektoru gore nego pravite novi, koji mora izgledati ovako:
width:200px;
padding:0px;
margin:0px;
}
Ovo je sada jedna nova stvar. Šta nam znači linija #izbornik ul? Ova linija govori pregledniku da se svojstva u ovom selektoru primjenjuju na ul tag koji se nalazi u DIV tagu izbornik. Ovakav način pisanja je vrlo koristan ako ćete imati još ul i li tagova koji će se nalaziti u drugom DIV tagu i koji neće služiti kao izbornik. Da smo napisali samo ul{… to bi značilo da će se svojstva primjenjivati na sve ul tagove koji postoje u dokumentu. Znači mi smo ga sad izdvojili i reki da se ovakva svojstva koriste samo na ul tagove unutar izbornik DIVa. Ostala svojstva su vam nadam se jasna, širina:200px, padding 0 i margin 0. Ovaj selektor nam u osnovi i nije toliko bitan ali sam ga iskoristio da bih vas uveo u ovaj način pisanja. Ajmo dalje. Sada opet ovo NEMOJTE dodavati već postojećem selektoru nego napravite novi koji će izgledati ovako:
width:190px;
height:20px;
display:block;
background: #000000;
padding-left: 10px;
}
Što ovo sad znači? Prva linija je slična kao iz prethodnog primjera. #izbornik ul li a:link, a:visited, znači da će se ova svojstva primjenjivati na a tagove (odnosno linkove) koji se nalaze u li tagu koji se nadalje nalaze u ul tagu i koji se nalaze u DIVu izbornik. Nadam se daće vam ova sličica malo razjasniti situaciju:
Pošto su nam a tagovi linkovi, vidjeli smo u prvom tutorialu da oni mogu imati određene načine ponašanja, zato smo ovdje odmah naveli kako želimo da se ponašaju obični linkovi (a:link) i posječeni linkovi (a:visited). Širinu sam stavio na 190px zato što sam kasnije dodao lijevi padding od 10px pa je 190px + 10px = 200px, background je naravno pozadina, koja je u ovom slučaju crne boje. Ono što nam je ovdje zanimljivo je svojstvo display:block - u doslovnom prijevodu znači prikaži blok, što je ujedno i najjednostavniji opis ovog svojstva. Znači rekli smo mu da nam link prikazuje kao blok koji će biti širine 200px i visine 20px. Ovo moramo napraviti pošto linkovi sami po sebi nisu blokovi.
Ok, ajmo dalje, sada ćemo pomoću css-a reći kako želimo da nam se linkovi ponašaju kada miš prijeđe preko istih. I to ćemo napraviti vrlo jednostavno pomoću - kako smo već u prvom tutorialu vidjeli - a:hover pseudo-selektora. Napišite novi selektor sa sljedećim svojstvima:
background: #FFFFFF;
color:#000000;
}
Ako smo sve napravili kako treba, sada kada pređemo mišem preko izbornika trebao bi promjeniti boju u bijelu. A slova da budu crne boje. Primjetit ćete da će vam se kada pređete mišem preko slova pojaviti crta ispod njih. To je zato što smo na početku .css dokumenta na a:hover odredili to svojstvo (text-decoration:underline) i sada je ovaj selektor naslijedo to svojstvo (o nasljeđivanju ću više pričati u video tutorialu). Ako ne želite da vam se pojavljuje ta crta onda samo poništite svojstvo text-decoration i to tako da u gornji selektor dodate liniju text-decoration:none;. Sada bi vam sav kod koji smo upisali trebao izgledati ovako:
width:200px;
float:left;
}
#izbornik ul{
width:200px;
padding:0px;
margin:0px;
}
#izbornik ul li a:link, a:visited{
width:190px;
height:20px;
display:block;
background: #000000;
padding-left: 10px;
}
#izbornik ul li a:hover{
background: #FFFFFF;
color:#000000;
text-decoration:none;
}
A stranica bi vam trebala izgledati otprilike ovako (kliknite na sliku za veći prikaz):
Horizontalni izbornici
Sada ćemo izraditi horizontalni izbornik, i za njega ćemo koristiti isti kod koji smo do sad napisali, ali ćemo ga malo modificirati. Za početak ćemo morati izbornik premjestiti na drugu lokaciju, jednostavno zato što u DIVu lijevo nemamo mjesta da prikažemo cijeli izbornik. Zato ćete ovaj dio koda:
<div id=“izbornik”><!–početak izbornika–>
<ul>
<li><a href=“#”>Početna</a></li>
<li><a href=“#”>Blog</a></li>
<li><a href=“#”>Tutoriali</a></li>
<li><a href=“#”>Kontakt</a></li>
</ul>
</div><!–kraj izbornika–>
<h2>Tableless Design Za Početnike</h2>
<p>Lorem ipsum dolor sit amet, consetetur………
Ovo nam naravno nikako ne odgovara. Pošto, za početak, zapravo taj izbornik nije horiznotalan nego je samo premješten u drugi DIV. Sada da bi napravili pravi moramo se prebaciti u .css dokument i tamo doraditi CSS da nam prikazuje horizontalni izbornik. Prvo ćemo zakomentirati i promjeniti sljedeće linije: u selektoru #izbornik zakomentirajte width:200px, u selektoru #izbornik ul zakomentirajte isto width:200px - ovo smo napravili zato što nam je ovdje određena fiksna širina elemenata, a kada radimo horizontalne izbornike ne želimo da nam širina bude fiksna.
Nadalje u selektoru #izbornik ul li a:link, a:visited promjenite width:200px u width:100px. Ovo radimo zato što nam je DIV desno širok samo 480px i kad bi ostavili da nam širina bude 200px, ukupna širina bi nam bila 800px, pošto imamo 4 izbora, pa je 4 x 200 = 800px. Zato upišemo da nam širina bude 100 pa je onda 4 x 100 = 400 i na to dodamo još padding sa lijeve strane što je za svaki izbor 10px znači dobivamu ukupnu širinu od 440px. Znači kod bi vam nakon tih promjena trebao izgledati ovako:
/*width:200px;*/
}
#izbornik ul{
/*width:200px;*/
padding:0px;
margin:0px;
}
#izbornik ul li a:link, a:visited{
width:100px;
height:20px;
display:block;
background: #000000;
padding-left: 10px;
}
#izbornik ul li a:hover{
background: #FFFFFF;
color:#000000;
text-decoration:none;
}
I što se promjenilo? Pa ništa zapravo osim širine izbornika koji je sada 100px. Sada slijedi prava čarolija. Da bi nam sad izbornik postao horizontalan samo ubacimo bilo gdje u selektor #izbornik ul li a:link, a:visited ovu liniju:
width:100px;
height:20px;
display:block;
background: #000000;
padding-left: 10px;
float:left;
}
I sad ako radite u Firefoxu sve izgleda ok….. No postoji tu jedan browser koji nama, web dizajnerima iz dana u dan zagorčava život. Govorim naravno o Internet Exploreru. Evo ovako bi sad naš izbornik trebao izgledati u Firefoxu (a i u većini drugih browsera koji nisu IE):
A ovako će izgledati u Internet Exploreru:
Kao što vidite razlika je poprilično velika. Ako pogledate ovu stranicu u oba preglednika vidjet ćete da postoje neke sitne razlike u pozicioniranju elemenata. To nam i nije toliki problem. Ali ovo je, kada dizajniramo stranice trebali bi ih raditi tako da ih većina popularnih browsera može pravilno pročitati. Pošto većina ljudi još uvijek koristi IE ovu razliku moramo ispraviti. To ćemo napraviti dosta jednostavno. Ispod selektora #izbornik ul dodajte drugi selektor koji će se zvati #izbornik ul li i u njega upišite svojstvo float:left, znači ovako će to izledati:
/*width:200px;*/
padding:0px;
margin:0px;
}
#izbornik ul li{
float:left;
}
I to bi trebalo riješiti taj problem, sada bi izbornik trebao izgledati isto i u IE i u FF. E, sad kada smo riješili to, ajmo pogledat što se desilo zapravo. Kako je vertikalni izbornik postao horizontalni. Znači uz one sitne promjene smo dodali, float:left u #izbornik ul li a:link, a:visited. Float:left je zapravo izvršio transformaciju izbornika iz vertikalnog u horizontalni. Zato što je link i li elementima rekao da plutaju i to na lijevu stranu, a kad neki element pluta to znači da se neće prebaciti u drugi red dok god ima mjesta u elementu u kojem se nalazi. Možda će vam ova sličica bolje razjasniti što se desilo:
Ok to bi bilo sve što se tiče horizontalnog izbornika. Naravno ima se tu još puno toga za reći ali ne želim sada duljiti. Sada prelazimo na tzv. fancy izbornike koji će se samo nastaviti na ovaj i poboljšati ga.
“Fancy” izbornici
Da bi ovaj izbornik napravili da bude “fancy” moramo dodati samo nekoliko linija koda, poslužiti se lukavošću i jednom vrlo jednostavnom sličicom. Sličicu možete desni klik -> Save image as… ispod:

Ovo je nekakav klasičan izbornik koji ima dva stanja, jedan dok je miš negdje okolo i drugo stanje kada se miš nalazi preko izbora. E sad, ako ste prije radili izbornike u dreamweaveru imali ste onu swap image funkciju, gdje odaberete jednu sliku za prvo stanje i jednu za drugo stanje i dobivate isti efekt koji ću vam ja sad tu pokazati s razliko što će vam DW još dodati gomilu JavaScripta i tako vam onečistit kod.
U čem je stvar sa gornjom sličicom? Nju ćemo koristiti kao pozadinu za naš izbornik, jedna polovica sličice predstavlja prvo stanje a druga polovica stanje kada pređemo mišem. Pošto smo definirali da su nam izbornici visoki 20px napravio sam ovu sličicu da bude visoka duplo - 40px. Kada stavimo da pozadina izbornika bude ova sličica mi ćemo moći vidjeti samo njezinih prvih 20px a ostatak će ostati sakriven pošto je izbornik visine samo 20px. Znači u selektor #izbornik ul li a:link, a:visited ćemo postaviti da na pozadina bude ova sličica (u mom slučaju se zove izbornik-bg.gif), samo ovom linijom zamjenite svojstvo background:
Sada bi vaš izbornik trebao izgledati ovako:
A kod bi vam trebao izgledati ovako:
/*width:200px;*/
}
#izbornik ul{
/*width:200px;*/
padding:0px;
margin:0px;
}
#izbornik ul li{
float:left;
}
#izbornik ul li a:link, a:visited{
width:100px;
height:20px;
display:block;
background:url(images/izbornik-bg.gif) repeat-x;
padding-left: 10px;
float:left;
}
#izbornik ul li a:hover{
background-position:bottom;
color:#000000;
text-decoration:none;
}
Eto to bi bilo to što se tiče izbornika za ovj tutorial. Šaljite mi komentare za ovaj i prijedloge za iduće tutoriale.
Ovaj unos je postavljen 22.06.2007 u 10:09 i pohranjen je pod HTML i CSS, Tutoriali, Video tutorial. Možete pratiti odgovore kroz RSS 2.0 feed. Možete preskočiti do kraja stranice i ostaviti komentar. Pinganje trenutno nije dozvoljeno.
5 Komentara do sada
Dajte svoj glas
Polja koja su bold su obvezna. Email adrese neće nikad biti objavljene ili distribuirane.
Nešto HTML koda je dopušteno:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URIi moraju biti potpuni (npr: http://www.imedomene.com) i svi tagovi moraju biti ispravno zatvoreni.
Prekidi linija i odlomci će biti automatski konvertirani.
Neka komentari budu relevantni za temu. Off-topic, i komentari koji su uvredljivi mogu biti cenzurirani ili obrisani.












Dana 26.10.2007 u 20:14 bane je napisao/la:
tutorial je super,svaka cast.
fino je objasnjeno i sve mi je bilo jasno.ali,evo jedno pitanje:ako zadrzim na levoj strani vertikalni meni a u sredini kreiram horizontalni,pojavi se greska.citac malo podivlja i horizontalni meni nestane.ima li neki trik da se ovo prevazidje
Dana 02.11.2007 u 22:45 milan je napisao/la:
Pozdrav!
Mislim ovo s website mi je do sad najjače:) Prijatelju pravi si, svaka čast. Stalno navratim na tvou stranicu, ali te u zadnje vrijeme nema,što se čeka:) Znaš ja se na ovaj način liječim od kocke i vjeruj ide nekako. Svakako mi se ne da spavati,a ja sam ti malo priglup, čim sam sve mogao prokockati i uvaliti se. Radim cijeli život elektroniku, a vjeruj ovo mi je isto tako interesantno. Jako je lijepo ovo što radiš. Da je malo više takovih ljudi svijet bi imao više šanse. Daj još koji tutorjal, znaš imam rođaka u Slavoniji, a ko klinac sam tamo stalno navraćao, pa mi je drago čuti slavonski glas. Ma slavonci su zakon:)
Ok što reći već hvala frend i tako nastavi, da i mi levati nešto naučimo. Meni je najteže postaviti stranicu na server, nisam još ni jednu uspio, mada sam par puta pokušao. Joomla, to još ne kužim najbolje. Što je xoops i te njihove 7dana teme. Stari udavi ja Pozdrav i hvala frend!
Dana 03.11.2007 u 10:13 Ivan je napisao/la:
Pozdrav Milane,
drago mi je čuti da svoju ovisnost možeš lječiti pomoću web dizajna, samo tako nastavi. Bio sam malo na tvojoj stranici i mogu ti reći da je ideja poprilično dobra. Mislim da bi mogla pomoći ljudima koji imaju problema sa kockom.
Gledaj, ako želiš ja sam ti spreman dati domenu i prostor na mom serveru, ako ćeš nastaviti sa radom na tim stranicama, naravno, ja bi pomogao koliko mi vrijeme bude dopuštalo. Već sam gledao, kockar.com je nažalost zauzeta, pa ako si za smisli neko ime domene. Javi mi ili ovdje ili na mail.
Pozdrav
Dana 12.11.2007 u 13:45 robert je napisao/la:
Super si !
Dana 12.11.2008 u 12:56 Dario je napisao/la:
Bok Ivane!
Evo danas sam prošao i ovaj drugi dio, sutra ću ići ispočetka ali sa drugim slikama, pohvala još jedamput.
čujemo se!