nav_dugme codeBlog codeBlog
  • početna Početna stranica
  • Sačuvani članci Sačuvani članci
  • Članci
     (spisak)
  • Kontakt
Povratak na vrh stranice

Info & povezani članci Info o članku - dugme

Info

trejler_sat Datum objave: 23.09.2020.

trejler_olovka Poslednja izmena: 04.10.2022.

trejler_dokument Jezici: HTML,
CSS

trejler_teg_narandzasti Težina: 3/10

HTML
CSS
web dizajn
internet
dom
frontend
fullstack
teorija
tutorijali
saveti
zanimljivosti

Tema: Web dizajn

2. Klasa - Id - Interni i linijski CSS3. CSS Box i pseudoklase4. Tagovi div i span - Flex box5. HTML 5 struktura i tagovi - Podela stranice6. Responzivni web dizajn7. Podešavanja editora i efikasna obrada tekstaUvod u JavaScript i DOM (Document Object Model)

Povezani članci

Osnove računarske grafike i formati slika u web dizajnuFontovi u web dizajnu (osnove tipografije)Pokretanje lokalnog web serveraUvod u PHP i back-end programiranjeStruktura web adresa i pristup internet stranicamaNapredni parametri internet pretrageLokalno skladištenje podataka browsera (sessionStorage, localStorage, cookies)Izbor prvog programskog jezikaAsinhrono programiranje u JavaScriptuASCII, Unicode i UTF - Predstavljanje znakova na računarima
Svi članci
Abstraction is not about vagueness, it is about being precise at a new semantic level.
Edsger W. Dijkstra

Uvod u web dizajn - 1. deo - Početni koraci

Facebook LinkedIn Twitter Viber WhatsApp E-mail
zoom_plus zoom_minus bookmark
početna > Članci > Saveti

Uvod

U različitim oblastima industrije postoje poduhvati koje u delo mogu sprovesti samo velike organizacije sa timovima stručnjaka i znatnim materijalnim sredstvima, međutim, postoje i značajni poduhvati (pogotovo u računarskoj industriji), za koje nije potrebno ništa osim volje, dobre organizacije vremena i želje za učenjem.

Kreiranje web sajtova srećom spada u drugu kategoriju, i stoga - ukoliko želite da započnete bavljenje web dizajnom - možete odmah da se 'bacite na posao'.

Da bismo vam u svemu pomogli, potrudićemo se (kroz članak koji je pred nama i kroz nekoliko narednih članaka), da odgovorimo na pitanja o tome koliko izrada sajtova zahteva vremena i truda, šta je potrebno od sredstava, koliki su izdaci (da li i koliko sve to košta), i naravno - bavićemo se tehnikalijama koje se tiču strukture i dizajna web stranica ....

Kako započeti?

U opštem smislu (i pod uslovom da na raspolaganju već imate računar), izrada web sajtova ne podrazumeva novčane izdatke, ali, iako vas ova lepa i korisna delatnost neće koštati novca (bar u početku), * svakako je u pitanju aktivnost koja zahteva vreme i trud (i nije bez izazova).

Da biste se u svemu snašli na najbolji način, preporučujemo sledeći 'početni plan':

  • odvojite dovoljno slobodnog vremena, tako da možete efikasno (bez žurbe i naprezanja) da se posvetite zadatku koji ste postavili pred sebe
  • dobro savladajte osnovne internet jezike: prvo HTML i CSS, a posle nekog vremena i JavaScript (koji je svakako nešto teži i komplikovaniji od prva dva)
  • izaberite jedan dobar editor teksta i (polako, kroz praksu), detaljno se upoznajte sa opcijama za efikasnu obradu teksta
  • uvek budite spremni da učite i vežbate

Ako svemu pristupite na konstruktivan način - zaista neće biti teško i rezultati neće izostati.

* Da pojasnimo zašto smo napisali "bar u početku": budući da se besplatno možete opremiti veoma kvalitetnim softverskim alatima (što ćemo opisati u sledećem poglavlju članka), bavljenje web dizajnom neće podrazumevati (dodatne) novčane izdatke (a ukoliko 'pronađete sebe' u web dizajnu i potrudite se oko tehničkog umeća, možete čak početi i da zarađujete, kreirajući sajtove za druge, pri čemu će cene hostinga * plaćati vlasnici sajtova).

Međutim, ukoliko budete želeli da postavljate sajtove na javno dostupne servere 'o svom trošku', to najverovatnije neće biti besplatno (doduše, cene su uglavnom prilično umerene, a postoji i mogućnost besplatnog postavljanja sajtova online; naravno, uz određena ograničenja). *

* Više o tome šta je 'hosting', kao i o drugim detaljima vezanim za postavljanje sajtova na servere - u nastavku ....

Softver za kreiranje web sajtova

Kada je u pitanju "opremanje alatom", za početak je potrebno da imate na raspolaganju računar sa instaliranim web browserom (u kome možete direktno otvarati statičke web stranice koje kreirate).

Izbor browsera svakako prepuštamo vama (daćemo i nekoliko preporuka ispod), * međutim, najbitnije je da se browser 'uposli' na pravi način, preko tzv. web-dev alata, ** preko kojih ćete lako moći da sagledate strukturu web stranica koje otvarate, kao i mnoge druge 'tehnikalije' (bilo da su u pitanju sajtovi koje kreirate sami, ili drugi sajtovi).

* U ovom trenutku, naša preporuka su programi LibreWolf i Brave (zapravo, preporučujemo da instalirate oba programa).

Takođe, ne dajte da vas pomalo "ekstravagantni" nazivi zbune - radi se samo o neznatno modifikovanim verzijama browsera Firefox i Chrome (manje bloatware-a). :)

** Web-dev alatima ćemo posvetiti pretposlednji odeljak ovog članka (jer je neophodno da se prvo upoznamo sa osnovama web dizajna na adekvatan način).

Naravno, među svim alatima, najvažniji su programi preko kojih se aktivno kreira sadržaj web stranica.

Pre svega mislimo na editor - program za unos i uređivanje teksta, * a dobro će doći i program za osnovnu obradu slika (sečenje, obrtanje, promena rezolucije, osnovne korekcije boja i sl).

Čitaocima za početak preporučujemo sledeća dva alata:

  • Notepad++ - program za rad sa tekstom
  • FastStone Image Viewer - program za osnovnu obradu slika

Navedene programe odlikuje optimalan spoj jednostavnog korisničkog interfejsa i dobrih tehničkih mogućnosti, ** ali, i bilo koji drugi editor, program za obradu slika i ostali softver koji eventualno već koristite, može poslužiti sasvim dobro (pod uslovom da takav softver nudi bar najosnovnije mogućnosti (što je u današnje vreme gotovo uvek slučaj), i pod uslovom da ste dobro upoznati sa mogućnostima određenog softvera, to jest, da imate rutinu u korišćenju).

Pre nego što počnemo da se bavimo HTML-om i CSS-om, takođe ćemo se osvrnuti na to kako sajtovi koje kreiramo mogu postati dostupni za pregled, bilo da je u pitanju javna dostupnost sajta ili (prosto) mogućnost pokretanja sajta na lokalnom računaru korisnika. ***

* Većina zadataka u izradi web sajtova (i inače u programiranju), svodi se upravo na unos i obradu teksta.

** Takođe, da se podsetimo: programi koje smo preporučili, potpuno su besplatni.

*** Nećemo se previše baviti detaljima, ali (sa jedne strane), uvažićemo činjenicu da su web sajtovi (nalik literarnim delima i sl) - u najvećem broju slučajeva i u idejnom smislu - 'javno dobro' (koje uglavnom 'konzumira' manja ili veća grupa pojedinaca; ne sam(o) autor), a uvažićemo i to da kod većine polaznika postoji (reklo bi se sasvim prirodna i razumljiva), radoznalost po pitanju toga "kako sajtovi na kraju završe na serverima", i stoga ćemo već u sledećem poglavlju članka napraviti kratak osvrt na tematiku postavljanja sajtova na servere (pre nego što počnemo da se bavimo kreiranjem sajtova).

Postavljanje sajtova na servere

Postavljanje sajtova iz 'domaće radinosti' na javno dostupne servere, predstavlja (kao što smo prethodno nagovestili), opciju koja svakako deluje najzanimljivije, kako početnicima tako i iskusnijim web developerima, ali, takođe valja pomenuti da takav pristup nije nešto čime se pojedinci zainteresovani za web dizajn "moraju" baviti (pogotovo na početku i pogotovo kada su u pitanju "ne-besplatne" opcije) ....

Međutim, ukoliko smo odlučili da sajt koji kreiramo učinimo dostupnim korisnicima na udaljenim računarima, datoteke koje čine sadržaj sajta (a u slučaju ozbiljnijih sajtova, takođe i baze podataka i sl), svakako je potrebno postaviti na javno dostupni server koji mora biti povezan sa javno dostupnom (i jedinstvenom) web adresom.

Komercijalna rešenja za objavljivanje sajtova

Pod komercijalnim uslovima (to jest, uz novčane izdatke), moguće je zakupiti hosting i domen, najčešće na godišnjem nivou.

Pojam hostinga (eng. host = domaćin), podrazumeva iznajmljivanje javno dostupnih web servera, pri čemu se zakupcima na raspolaganje stavlja i softver za administraciju sajtova.

Domen je zvaničan naziv za web adresu sajta ("www.sajt.com"), a ukoliko vas terminologija vezana za internet zanima u većoj meri, možete ispratiti sledeći link: Struktura web adresa i pristup internet stranicama.

Postavljanje sajta se svodi na kopiranje datoteka na server (makar kada su u pitanju jednostavniji sajtovi kakve ćemo za početak opisivati), uz prethodno podešavanje domena i hostinga.

Da budemo precizni, mislimo (naravno) na podešavanja koja se stavljaju na raspolaganje zakupcima domena i hostinga (tipično preko softverskog paketa cPanel).

Sa druge strane, podešavanje servera u širem kontekstu (samostalno "podizanje" servera uz sve neophodne mere predostrožnosti), kao i pokretanje komplikovanijih dinamičkih sajtova, ipak su teme koje daleko prevazilaze okvire diskusije koja je vezana za početno upoznavanje sa web dizajnom (ali bavićemo se i takvim temama u nekim kasnijim člancima).

Podešavanja koja su dostupna u okviru hosting paketa, relativno su jednostavna, a sam softver preko koga se obavljaju podešavanja, u većini slučajeva je prilično pregledan i sveobuhvatan.

Međutim - posao nije ni iz daleka trivijalan (definitivno nije za početnike), i lako može doći do grešaka usled nepažnje i neiskustva, pa preporučujemo da se podešavanjem servera (a pogotovo podešavanjem domena), ne bavite bez (minimum) nekoliko meseci ozbiljnijeg izučavanja web dizajna, uz poveću količinu pročitanog teksta i (više nego poželjno), pomoć i savete iskusnijih kolega.

Što se tiče 'ekonomskog aspekta', recimo da izdaci za održavanje web sajta na godišnjem nivou nisu preveliki, ali, nisu ni skroz neznatni: zakup domena za jedan sajt košta oko dve hiljade dinara, a zakup hostinga (koji omogućava postavljanje od dva do pet sajtova), tipično između pet i petnaest hiljada. *

* Naravno, u pitanju su podaci koji su aktuelni u trenutku objavljivanja članka.

Nekomercijalna rešenja (besplatan hosting)

Pored mogućnosti zakupa domena i hostinga (što objektivno jeste najprivlačnija opcija, budući da je u pitanju pristup koji nudi najviše mogućnosti uz minimum restrikcija), * postoje i sajtovi koji nude besplatan hosting (vrlo često sasvim solidan i prilično funkcionalan), s tim da takav aranžman gotovo uvek podrazumeva i nezanemarljiva ograničenja (manje prostora koji je korisniku stavljen na raspolaganje, manje opcija za podešavanje u odnosu na plaćeni hosting, reklame, vreme tokom kojeg će sajt biti isključen i sl).

Naravno, osnovno ograničenje je adresa sajta, koja nije jedinstvena i lako prepoznatljiva (sajt neće imati sopstveni domen), već je u pitanju adresa koja je tipično formatirana po sledećem obrascu:

		
www.besplatnihosting.com/vas_sajt
		
	
Slika 1. - Primer web adrese na (fiktivnom) besplatnom hosting sajtu.

* Zakupci hostinga nemaju (u većini slučajeva), direktan pristup serverima sa kojih se sajtovi pokreću, već samo mogu pristupati podešavanjima koja se tiču sajtova i domena za koje je zakupljen hosting (ali, u praktičnom smislu, opcija ima sasvim dovoljno za većinu sajtova manjeg i srednjeg obima).

Pokretanje sajtova 'u lokalu' (sa ili bez pokretanja lokalnog servera)

Pored besplatnog hostinga (odnosno, postavljanja sajtova online u opštem smislu), postoji i opcija pokretanja sajtova "u lokalu":

  • jednostavni statički sajtovi mogu se neposredno otvarati u browserima
  • dinamički sajtovi se mogu pokretati preko lokalnog servera (malo komplikovanije od prve opcije, ali, i dalje prilično jednostavno)

Sajtovi pokrenuti na lokalnom računaru, neće (razume se) biti dostupni udaljenim korisnicima, ali, svakako možete mnogo toga naučiti pokretanjem sajtova u lokalu (pogotovo ako pokrenete lokalni server).

Takođe, celokupno iskustvo pokretanja prvih sajtova, u većini slučajeva je vrlo zabavno i inspirativno (i predstavlja podstrek za dalji rad).

Naravno, detaljno isprobavanje sajta na sopstvenom računaru (ili u lokalnoj mreži), zapravo je korak koji se podrazumeva i za sajtove koji se na kraju postavljaju na javno dostupne servere.

Međutim, da bismo uopšte imali šta da postavljamo na servere, potrebno je prvo naučiti kako se kreiraju sajtovi 🙂 ....

Ukratko o osnovnim 'internet jezicima'

Sam početak bavljenja izradom sajtova, podrazumeva (kao što smo još ranije naveli), upoznavanje sa tri osnovna 'internet jezika' (ili, da upotrebimo izraz koji je popularniji poslednjih godina - tri internet tehnologije):

  • HTML (Hypertext Markup Language) je jezik za definisanje opšte strukture web stranica *
  • CSS (Cascading Style Sheets) je jezik koji služi za stilizaciju sadržaja i definisanje vizuelne strukture web stranica *
  • JavaScript je jezik koji omogućava (između ostalog), dinamičko kreiranje HTML elemenata i dodatne oblike interakcije korisnika sa stranicom **

* Zarad starijih i iskusnijih čitalaca, pojasnićemo odmah na početku šta je razlika između "opšte"/"apstraktne" strukture, i "onoga što posetioci vide u browseru" (što smo prethodno nazvali "vizuelnom strukturom"), pri čemu ćemo za primer uzeti stranicu koju trenutno posmatrate. Recimo, ukoliko posmatrate sajt na monitoru desktop računara, sadržaj (sa linkovima za 'brzinsko prebacivanje'), nalazi se levo, sam članak je u centru, a linkovi ka srodnim člancima i druge informacije, nalaze se desno. Ako sajt posmatrate na mobilnom telefonu, elementi su raspoređeni jedni ispod drugih. "Apstraktna struktura" HTML dokumenta, ista je u oba slučaja (prethodno navedeni elementi nalaze se unutar zasebnog odeljka u kome je definisan "glavni" deo stranice), međutim, vizuelna prezentacija je različita.

Svakako su u pitanju zanimljive teme kojima ćemo se baviti kroz naredne članke, ali, prvo se moramo upoznati sa znatno jednostavnijim idejama i tehnikalijama (što sledi direktno u nastavku). :)

** Još jednom, preporuka sa naše strane: slobodno sačekajte neko vreme pre nego što počnete da učite JavaScript, i (naravno), u međuvremenu dobro savladajte osnove HTML-a i CSS-a.

HTML - Hypertext Markup Language (struktura web stranica)

HyperText Markup Language (skraćeno - HTML), osnovni je jezik koji se koristi u izradi web stranica.

Iza HTML-a stoji ideja o definisanju strukture web stranica preko teksta, ali (kao što i sami verovatno možete pretpostaviti), nije u pitanju 'skroz običan tekst' (što ćemo dodatno pojasniti).

U tehničkom smislu, može se reći da HTML jeste 'običan tekst' (jer nije u pitanju zatvoreni binarni format), međutim, u praktičnom smislu, HTML kod predstavlja kombinaciju ('zaista') običnog teksta, i tagova - posebno formatiranih niski sa unapred određenim značenjem (preko kojih se definišu različiti elementi koje zapažamo na web stranicama, pre svega 'hiperlinkovi'). *

U nastavku, upoznaćemo se prvo sa nekoliko osnovnih ideja (na kojima se zasniva zapis HTML datoteka), nakon čega ćemo se detaljnije upoznati sa osnovnim tagovima .....

Zašto je za definisanje strukture web stranica izabran "običan tekst" (a ne 'nekakav' binarni format)?

Ukoliko imate nešto više iskustva sa programiranjem, verovatno ste upoznati sa time da se programi koji se kompajliraju 'pre upotrebe' (programi napisani u C-u, C++ - u i sličnim jezicima), izvršavaju brže od programa koji su zapisani u jezicima koji se interpretiraju pri pokretanju (npr. Python).

Međutim, za razliku od tekstualnih formata, binarni formati nisu transparentni, to jest, direktnim otvaranjem izvršne datoteke - ne može se utvrditi čemu program služi - i stoga binarni formati (uvek) predstavljaju izvestan sigurnosni rizik, a pogotovo bi to bio slučaj u hipotetičkoj situaciji u kojoj bi se sadržaj web sajtova preuzimao u binarnom obliku (sa udaljenih servera).

* U vreme kada je internet saobraćaj počeo da 'uzima maha' (okvirno, početak 90-ih godina 20. veka), web stranice su uglavnom još uvek izgledale kao 'tekst otkucan na mašini', ali, postojala je razlika: 'hipertekst' je sadržao (hiper)linkove prema drugim stranicama (a nedugo zatim su počele da se pojavljuju i slike, i drugi elementi).

U današnje vreme, linkovi predstavljaju sasvim 'običnu'/svakodnevnu pojavu, ali, nekada su bili veoma zanimljiva novotarija (u odnosu na reference iz štampanih dokumenata, koje ne vode prema drugim stranicama 'preko jednog klika'). :)

Šta su tagovi

Termin "HTML tag" (sa kojim smo se usputno upoznali u prethodnom odeljku), označava deo teksta koji počinje znakom <, završava se znakom > i ima specifičnu namenu u definisanju strukture stranice ili nekog od pojedinačnih elemenata.

Na primer, sledeći HTML kod ....

		
<p>
	Carpe diem!
</p>
		
	
Slika 2. - Primer HTML taga preko koga se definiše pasus u tekstu.

.... definiše pasus u tekstu.

Tagovi se najčešće pojavljuju u parovima, međutim, postoji i veći broj tagova koji stoje samostalno (o čemu ćemo detaljnije diskutovati u narednom odeljku).

Postoje tagovi koji definišu jasno vidljive elemente (slike, pasuse, linkove ka spoljnim stranicama i dr), tagovi preko kojih se definiše opšta struktura stranice (koja, uz upotrebu CSS-a, praktično postaje "prostorna podela" koju vidimo u browseru), a postoje i tagovi koji se ne vide, ali - i te kako su bitni za pravilno funkcionisanje sajtova (više o svemu, nešto kasnije u članku).

U svakom slučaju, da bi stranica bila pravilno definisana, potrebno je da različiti tagovi budu pravilno zapisani i pravilno raspoređeni.

U kontekstu korektnog definisanja pojedinačnih tagova, ne može se samo napisati (na primer) ....

		
(ovde početi sa podebljavanjem)Tekst koji treba podebljati(ovde prestati sa podebljavanjem)
		
	
Slika 3. - Primer neadekvatnog navođenja HTML 'tagova'.

... jer - bez obzira na to što je naveden tekst koji sam po sebi predstavlja 'razumno uputstvo na prirodnom jeziku' - nije naveden programski kod koji bi mogao biti uspešno protumačen u browseru (i jedino možemo postići da navedeni tekst bude ispisan doslovno onako kako smo već videli).

Međutim, ako zapišemo nešto drugačiji "tekst":

		
<b>Tekst koji treba podebljati</b>
		
	
Slika 4. - Tagovi stoje na početku i na kraju dela HTML koda na koji utiču: tag <b> (bold), sugeriše browseru da započne ispis podebljanih slova, dok komplementarni tag </b> sugeriše browseru da isključi ispis podebljanih slova.

.... browser će ovoga puta 'razumeti' da pojava odrednice <b> ne znači da treba (doslovno) ispisati tekst "<b>", već, da niska <b> predstavlja precizno uputstvo, koje se odnosi na to da slova u nastavku treba ispisivati uz upotrebu podebljanog (tj. "boldovanog") fonta - sve dok se ne naiđe na odgovarajući "zatvarajući" tag - </b>.

Rezultat je ispis: Tekst koji treba podebljati.

Tagovi koje smo videli u primerima (tag <p> preko koga se definišu pasusi i tag <b> preko koga se uključuje podebljavanje teksta), nisu naravno proizvoljno izabrane niske znakova, već, niske koje predstavljaju delove HTML koda sa unapred definisanim značenjem (dva često korišćena taga iz prilično velike kolekcije 'mogućih tagova'), pa tako, pored "p taga" i "b taga", postoje i tagovi preko kojih se definišu: naslovi, slike, linkovi, tabele, odeljci stranica, kao i mnogi drugi elementi HTML strukture.

Kao što smo već naveli, bitno je i to da tagovi budu pravilno povezani međusobno (na šta ćemo se više puta osvrnuti već u ovom članku, a svakako i u narednim člancima u kojima ćemo se baviti HTML strukturom).

Jednodelni i dvodelni tagovi

Većina tagova sastoji se iz dva dela: "otvarajućeg" i "zatvarajućeg" (pri čemu se zatvarajući tag prepoznaje po znaku "/"), ali, ima i tagova koji nemaju drugi deo, već se pojavljuju samostalno.

Zašto je tako?

Neki tagovi određuju (na primer), gde je početak i gde je kraj pasusa, gde počinje i gde se završava naslov odeljka (posle čega verovatno sledi običan tekst koji počinje u novom redu), a možemo svakako u grupu dvodelnih tagova uvrstili i "bold" tagove koje smo videli u prethodnom odeljku.

Neki drugi tagovi, ne definišu elemente i pojave koje imaju "početak i kraj", već samo navode pojavu određenog elemenata na datoj poziciji u HTML kodu, ili su u pitanju tagovi specijalne namene, koji određuju osnovna svojstva stranice (primer: tag <meta>, sa kojim ćemo se upoznati uskoro).

Verovatno najpoznatiji * "jednodelni" tagovi su: <img/> (skraćeno od image) - tag koji definiše pojavu slike na stranici, i tag <br/> (break), ** koji navodi browser da pređe u novi red pri ispisu teksta.

		
<img src='/slike/slika1.png' title='Slika sa izložbe'/>

<br/>
		
	
Slika 5. - Da li je potrebno da tagovi za slike (img) i prelazak u novi red (br), imaju zatvarajući tag? Recimo da nije: slika će se jednostavno prikazati, u celosti, tamo gde je img tag naveden, a prelazak u novi red takođe se dešava tamo gde je odgovarajući "br" tag naveden.

* "Verovatno najpoznatiji", ali, ne i jedini (spisak jednodelnih tagova je takođe 'poveći').

** Tag break služi (samo) za "prelazak u novi red" (pasusi se definišu preko "p" tagova, a odeljci stranice preko posebnih "div" tagova, sa kojima ćemo se upoznati u jednom od kasnijih članaka).

Sada kada razumemo šta su tagovi (i pošto smo se upoznali sa razlikama između dvodelnih i jednodelnih tagova), red je da se vratimo na sam početak ....

Osnovni tagovi: <html>, <head> i <body>

Osnovna struktura web stranice definiše se preko tagova <html>, <head> i <body>:

  • tag <html> sugeriše browseru da (u nastavku) sledi HTML kod, sve dok se ne naiđe na zatvarajući </html> tag (u idejnom smislu, sasvim nalik 'vitičastim' zagradama koje uokviruju telo funkcije main u programskom jeziku C).
  • unutar <head> tagova upisuju se informacije koje su bitne za funkcionisanje stranice u opštem tehničkom smislu, ali (izuzev naslova i ikone koji se vide u naslovnoj liniji browsera), nisu u pitanju HTML elementi koji imaju pojavni oblik (više o tipičnom sadržaju <head> tagova - u nastavku).
  • celokupan vidljivi sadržaj stranice, zapisuje se unutar <body> tagova.

Da se uvodna priča ne bi previše 'odužila', počnimo polako sa izradom stranice, pa - ukoliko želite da samostalno isprobavate primere koje ćemo prikazivati (što svakako preporučujemo) - otvorite datoteku sa nazivom index.html u editoru teksta, sačuvajte datoteku u zaseban folder i unesite sledeći kod:

		
<!DOCTYPE html>

<html>
	<head>
	</head>

	<body>

	</body>
</html>
		
	
Slika 6. - Najosnovnija struktura HTML dokumenta.

Celokupan dokument je zapisan unutar <html> tagova, <head> tagovi prethode <body> tagovima i - kada se prikazana struktura preda browseru - biće pravilno protumačena. *

Zarad mlađih i manje iskusnih čitalaca, osvrnućemo se na nekoliko 'sitnica' koje mogu biti pomalo zbunjujuće na početku.

Pre svega, mnogi početnici imaju dilemu oko tagova <head> i <body>, u smislu, "šta je iznad, a šta ispod?!" (u pravilno definisanom HTML dokumentu), a odgovor je jednostavan i samo se treba setiti anatomije: slično kao što je "glava iznad a telo ispod", <head> tagovi se pišu pre <body> tagova.

Naglasićemo takođe da je izrazito bitno gde i kako se zapisuju otvarajući i zatvarajući tagovi: ukoliko se, na primer "body" tag, otvori unutar "html" tagova, mora se unutar "html" tagova i zatvoriti (isto važi recimo i za otvarajući i zatvarajući tag "title" unutar "head" tagova i, naravno, za ostale kombinacije tagova).

* S obzirom na direktivu <!DOCTYPE html>, stranica se tumači u skladu sa standardom HTML 5 (za sada, navedena informacija nije od prevelikog značaja, ali, biće od značaja u kasnijim člancima, kada budemo počeli da koristimo "HTML 5 tagove").

Međutim, u praktičnom smislu, stranica koju smo definisali - i dalje je prazna ....

Tagovi <meta> (dodatne informacije o stranici), <title> (naslov)

Prethodno prikazana HTML struktura, sama po sebi je korektna, ali, nije potpuna čak ni u smislu "nevidljive" strukture koja je svojstvena većini dobro dizajniranih sajtova (a pogotovo ne u smislu vidljivog/dopadljivog sadržaja), i stoga je potrebno da strukturu stranice (postepeno) dopunimo.

Pre nego što počnemo da dodajemo vidljivi sadržaj, dopunićemo strukturu <head> tagova, time što ćemo dodati tagove <title> i <meta>.

		
<head>
	<meta charset='UTF-8'/>
	<title>Naša prva stranica</title>
</head>
		
	
Slika 7. - Dodatni tagovi koji definišu: naslov (title) i upotrebu Unicode znakova (tag meta, sa atributom charset).

Tag <title> (kao što je već pomenuto), definiše naslov stranice koji će biti vidljiv na naslovnoj liniji browsera, ili na jezičcima (tj 'tabovima').

Međutim, napomenimo odmah da nije u pitanju naslov koji će se videti u telu stranice (za tako nešto se koriste tagovi <h1>-<h6>, o kojima ćemo pisati uskoro).

Tag <meta> služi za definisanje opštih ('tehničkih') svojstava stranice, kao što su npr: izbor standarda za kodiranje znakova (ASCII, Unicode ili neki drugi), kratak opis stranice (koji se ne vidi na samoj stranici ali se vidi ukoliko se stranica pojavi pri pretrazi na nekom internet pretraživaču), ključne reči, potpis autor i sl.

Međutim, pojava "praznog" <meta> taga, nema efekta na strukturu stranice, i stoga je potrebno da se upoznamo sa "atributima" koji daju pravi smisao <meta> tagovima, i pogotovo je neophodno da se upoznamo sa pojmom atributa u opštem smislu.

Usputna napomena: dokument koji smo kreirali, predstavlja (u svom trenutnom stanju), korektno definisan "prazan HTML dokument", ali .... nećemo još otvarati sajt u browseru (dok ne unesemo bar jedan pasus).

Pre toga - atributi ....

Pojam HTML atributa

Za razliku od (drugih) tagova koji se mogu pisati bez dodatnog koda u otvarajućem tagu, <meta> tag mora sadržati atribute (tj. svojstva).

U opštem smislu, termin atribut označava nisku koja se zapisuje unutar otvarajućeg taga, u obliku naziv_atributa='vrednost', i služi za preciznije definisanje funkcionalnost taga.

Međutim, neretko (kao u primeru koji razmatramo), preko atributa se praktično uspostavlja funkcionalnost određenog taga.

U slučaju taga <meta>, upotrebom atributa charset (kome je pripisana vrednost 'UTF-8'), browseru se sugeriše da je pri pregledu stranice potrebno uključiti podršku za Unicode znake (bez čega praktično nije moguće pravilno prikazivati latinična slova sa "kvačicama", kao ni azbuku i druga pisma koja koriste znake kojih nema u engleskom alfabetu).

Kao što sami tagovi nisu nasumične niske znakova, tako su i atributi precizno definisani unapred: u okviru određenog HTML taga prepoznaju se određeni atributi, dok se atributi koji nisu deo HTML specifikacije zanemaruju.

Na primer, ako napišemo: <p uputstva_za_trening='This-is-Sparta!'>Tekst pasusa.</p>, pasus će biti definisan, ali, atribut će biti zanemaren ("dobra vest" je da pojava nepostojećeg tj. 'neprepoznatog' atributa neće blokirati browser).

Sada je već vreme da počnemo da popunjavamo stranicu sadržajem. :)

Pasusi u tekstu: <p>

U smislu prikaza vidljivog sadržaja na web stranicama, poseban značaj imaju <p> tagovi (skraćenica za 'paragraph'), preko kojih se tekst (baš kao i inače u literaturi), raspoređuje u pasuse.

Za primer, dodaćemo sledeći sadržaj ....

		
<p>
	Dobar dan!
</p>
		
	
Slika 8. - Preko "p tagova", pasus je definisan kao blokovski element (koji je odvojen od ostatka sadržaja sa gornje i donje strane).

.... unutar <body> tagova (koje smo ranije definisali).

Celokupna HTML struktura ima sledeći oblik:

		
<!DOCTYPE html>

<html>
	<head>
		<meta charset="UTF-8">
		<title>Naša prva stranica</title>
	</head>

	<body>
		<p>
			Dobar dan!
		</p>	
	</body>
</html>
		
	
Slika 9. - Osnovna HTML struktura (sa jednim dodatim pasusom).

.... i sada (konačno :)) možemo otvoriti stranicu u browseru i pogledati kako izgleda.

Pošto smo uneli i najosnovniji tekstualni sadržaj, HTML struktura koju smo do sada zapisali praktično je ekvivalent "hello world" programa u programskim jezicima kao što su C, Java, Python i sl.

Razlike između linijskih (inline) i blokovskih elemenata

Tag <p>, koji smo prethodno koristili za definisanje pasusa (tj. 'paragrafa'), pripada grupi tzv. blokovskih elemenata (eng. block element(s)).

Pored blokovskih elemenata, postoje i linijski elementi (eng. inline element(s)), a razlika između blokovskih elemenata i linijskih elemenata je sledeća:

  • blokovski elementi se (u prikazu) odvajaju po visini od okolnog sadržaja
  • linijski elementi se prikazuju 'u istoj liniji' sa okolnim sadržajem (naravno, pod uslovom da inline tagovi nisu zapisani između dva blok elementa)

Razliku ćemo dodatno objasniti u sledećem odeljku (preko primera).

Pošto smo se sa blok elementima upoznali služeći se primerom <p> tagova, upoznaćemo se odmah i sa jednim linijskim tagom (verovatno najznačajnijim linijskim tagom i jednim od najvažnijih tagova u opštem smislu).

Linkovi ka spoljnim stranicama: <a> (anchor)

Tag <a> je dvodelni linijski tag preko koga se definišu linkovi, koji tipično upućuju prema spoljnim stranicama (koje su deo istog sajta, ili (još češće), pripadaju drugim sajtovima).

		
<a href='https://www.sajt.com/stranica.html'>Link ka drugoj stranici</a>
		
	
Slika 10. - Za linkove koji (tipično) upućuju ka drugim stranicama, koristi se tag <a> ("anchor"), čiji je glavni atribut href - URL na koji link upućuje.

Da bi link (definisan preko <a> tagova), funkcionisao pravilno, potrebno je navesti i uskladiti sledeće detalje:

  • atribut href ('hyperlink reference'), najvažnije je svojstvo bilo kog <a> taga i predstavlja "web adresu" na koju link upućuje
  • između otvarajućeg i zatvarajućeg <a> taga definiše se tekst * koji će biti direktno ispisan u browseru

* Umesto teksta, između <a> tagova se takođe može postaviti i slika, preko <img> tagova sa kojima ćemo se upoznati kasnije u članku (nakon čega ćemo prikazati i primer ugnežđavanja tagova <a> i <img>).

Tekst između otvarajućeg i zatvarajućeg <a> taga može biti proizvoljan (odnosno, ne mora odgovarati sadržaju atributa href), ali, svakako je preporučljivo da tekst linka bude formatiran tako da bude jasno na kakav sadržaj link upućuje. *

Na primer, sledeći HTML kod ....

		
<a href='https://www.codeblog.rs'>codeblog</a>
		
	
Slika 11. - Konkretan primer upotrebe "a" taga.

.... može se ubaciti u paragraf (tj. može se zapisati između <p> tagova), čime se definiše tekstualni link prema početnoj stranici sajta na kome se trenutno nalazite, a usput smo videli i kako postavljanje sličnog linka u paragraf izgleda i funkcioniše u praksi (tekst linka prikazan je u istoj liniji sa okolnim tekstom i formatiran tako da bude jasno da 'ipak nije u pitanju običan tekst').

* Da rezimiramo ukratko: tekst koji u web dokumentu predstavlja link, može biti ispisan tako da doslovno odgovara URL-u (https://www.sajtxyz.com), ili tako da se pojavi naziv sajta (Sajt XYZ), ali, može se podesiti i da tekst linka bude 'koncepcijski uklopljen' u okolni tekst (npr: ".... za razliku od ranije dostupnih informacija, novija istraživanja pokazuju da ...").

Pomenimo usput i da se preko atributa target, kome se pripisuje vrednost '_blank' ** browseru može dati 'nalog' da linkovanu stranicu otvori u zasebnom prozoru (u praktičnom smislu, 'u novom tabu'), međutim, atribut target naveden je samo zarad opšte informisanosti.

U modernom web dizajnu se izbegava automatsko otvaranje linkova u novom tabu tj. prozoru (jednostavno: korisnik je uskraćen za opciju otvaranja linka u istom tabu (ili prozoru)).

** Umesto apostrofa, mogu se koristiti i znaci navoda (naravno, pod uslovom da se graničnici niski ne mešaju).

Ukoliko se (za razliku od prethodnog primera), link definiše između dva pasusa, ili posle pasusa (odnosno, u opštijem smislu, između dva blok elementa, ili posle blok elementa):

		
<p>
	Prvi pasus ....
</p>

<a href='https://www.codeblog.rs'>codeBlog</a>

<p>
	Drugi pasus ....
</p>
		
	
Slika 12. - Primer HTML koda sa inline elementom koji je zapisan između dva blokovska elementa.

.... takav link će u prikazu biti odvojen ('po vertikali') od susednih elemenata (a razlog je to što su blok elementi obavezno odvojeni (po vertikali) od okolnog sadržaja):

Prvi pasus ....

codeBlog

Drugi pasus ....

Na početku smo naveli da linkovi "tipično" upućuju na druge stranice, što je zapravo bio posredan način da nagovestimo da linkovi (definisani preko <a> tagova), mogu upućivati i na delove stranice sa koje se pozivaju, međutim, takav pristup podrazumeva prethodno povezivanje naslova odeljaka stranice sa odgovarajućim identifikacionim oznakama (čime se nećemo baviti u ovom članku, već, u sledećem članku).

Ipak, da ne biste 'dugo čekali' da saznate o čemu se radi (i ukoliko posmatrate desktop verziju sajta), sa leve strane možete primetiti sadržaj stranice, koji se automatski popunjava svaki puta kada se stranica učita, i bilo koji od linkova iz sadržaja, vodi upravo - ka nekom od delova trenutne stranice (tj. ne vodi prema spoljnim stranicama).

Naslovi stranica i podnaslovi: <h1> - <h6>

Za razliku od naslova koji je definisan preko taga <title> i nije previše uočljiv (niti predstavlja deo tekstualnog sadržaja stranice), za definisanje "vidljivih" naslova koji se pojavljuju na odgovarajućim mestima u samom tekstu, predviđeni su tagovi <h1>, <h2>, <h3>, <h4>, <h5> i <h6>.

Slovo "h" je skraćenica reči "heading" (u prevodu sa engleskog - naslov), a broj upućuje na hijerarhijski smisao naslova: tag <h1> definiše glavni naslov stranice, a ostali "h tagovi" (<h2> - <h6>), označavaju naslove (pod)odeljaka i drugih manjih zaokruženih celina.

* Po pravilu (koje ne treba kršiti), tag <h1> se pojavljuje samo jednom, tipično pri vrhu stranice, međutim, pošto smo na posredan način nagovestili da je tehnički izvodljivo da se pravilo o postavljanju samo jednog para <h1> tagova prekrši, želimo da pojasnimo o čemu se zapravo radi.

Web browseri ne proveravaju da li stranica sadrži samo jedan naslov koji je definisan preko <h1> tagova (ili takvih naslova ima više), i stoga - u osnovnom tehničkom smislu - jeste moguće postaviti dva ili više naslova koji su definisani preko tagova <h1>, međutim (!) ....

  • definisanje samo jednog glavnog naslova stranice, stvar je pravilnog kodiranja i dobrih navika **
  • internet pretraživači (Google i sl), vode računa o strukturi stranica i dodeljuju niži rang stranicama koje nisu pravilno strukturirane

** Na pojedini (modernijim) sajtovima, tag <h1> se pojavljuje kao naslov svakog odeljka stranice koji je definisan preko taga <section>, ali, preporučljivo je koristiti <h2> tagove i u takvim okolnostima (čime ćemo se detaljnije pozabaviti u jednom od kasnijih članaka).

Takođe, kada je u pitanju "estetika", lako se može postići da <h2> naslovi izgledaju nalik <h1> naslovima, ali (naravno/"očekivano"), u najmanju ruku nije preporučljivo "zbunjivati" posetioce sajtova na takav način, budući da se (godinama unazad / na većini pravilno dizajniranih sajtova), uvažavaju 'nezvanična pravila' o jasnoj razlici u dimenzijama glavnog naslova stranice (h1), glavnih podnaslova (h2), i podnaslova drugih celina u tekstu (h3-h6).

Slike: <img>

Tag <img> je jednodelni linijski tag koji definiše pojavu slike (između delova teksta, kao deo linka, ili na nekom drugom mestu).

Slike na HTML stranicama se tipično definišu uz korišćenje sledećih atributa:

		
<img src='./slika_01.png' alt='Pejzaž 1' title='Pejzaž 1'/>
		
	
Slika 13. - Slike se postavljaju preko tagova <img>: atribut source definiše putanju prema datoteci koja sadrži sliku, dok atribut alt definiše tekst koji će biti ispisan ukoliko slika nije pronađena.

Preko prethodnog HTML koda, definisana je sledeća slika:

Pejzaž
Slika 14. Kada se HTML kod iz prethodnog odeljka interpretira u browseru, rezultat je slika koju vidimo iznad.

U svemu je najvažnije pravilno podesiti vrednost atributa src (source), koji upućuje na adresu datoteke koja sadrži sliku koju je potrebno prikazati (slično kao atribut href u <a> tagovima), a gornji primer će poslužiti i kao prilika za upoznavanje sa opštim principima za zadavanje putanja prema datotekama (i sa atributima alt i title).

Apsolutne i relativne putanje, atributi alt i title

Ukoliko nije navedena celokupna putanja, adresa je relativna, što, npr. u slučaju <img> taga koji smo prethodno definisali, znači da će browser sliku tražiti u istom direktorijumu (tj. folderu) u kome se nalazi i datoteka u kojoj je zapisan HTML kod preko koga se poziva slika (u primeru koji razmatramo, kod je zapisan u datoteci index.html, koja se nalazi u korenom direktorijumu servera).

Što se tiče adrese koja počinje sa ./ - 'ne dajte se zbuniti': u pitanju je samo, 'baš zvaničan' način za "traženje datoteke na istoj putanji" (tačka predstavlja trenutni direktorijum (tj. 'folder'), a kosa crta je simbol koji, u putanjama, razdvaja direktorijume od datoteka i drugih direktorijuma).

Ukoliko je potrebno navesti putanju prema poddirektorijumu (trenutnog direktorijuma), poddirektorijum se dopisuje posle oznake za trenutni direktorijum: src='./slike/slika_01.png') i browser će ovoga puta sliku tražiti unutar direktorijuma (tj. 'foldera') slike, koji se nalazi na istoj putanji kao i sam HTML dokument (koji se otvara u browseru).

Putanje prema poddirektorijumima koje počinju sa ./ svakako deluju 'lepo i zvanično', ali, često ćete se sretati i sa putanjama koje su navedene bez odrednice ./ na početku (na primer: src='slike/slika_01.png'), što je takođe 'legitiman' način za zadavanje putanja.

Ukoliko je potrebno navesti putanju prema direktorijumu sa prethodnog nivoa hijerarhije, putanja počinje sa dve uzastopne tačke: ../slike/slika_x.png, ali, takva putanja u trenutnom primeru nije od praktičnog značaja, budući da je datoteka index.html (čiji sadržaj definišemo), smeštena u koreni direktorijum servera (pa stoga ne postoji "direktorijum na prethodnom nivou hijerarhije").

.... ali (naravno), da pojasnimo dodatno ("za inače") ....

Kao što jedna tačka u putanjama označava trenutni direktorijum, dve uzastopne tačke: .. označavaju 'roditeljski' direktorijum, odnosno, direktorijum u okviru koga se nalazi trenutni direktorijum.

Ako (recimo), na serveru postoji: datoteka /index.html, * direktorijum /slike i datoteka /blog/kako_zameniti_filter_za_ulje.html:

  • unutar datoteke /index.html, putanja prema slikama navodi se kao src='./slike/slika_x.png'
  • unutar datoteke /blog/kako_zameniti_filter_za_ulje.html, putanja prema slikama navodi se kao src='../slike/slika_x.png' **

* Kosa crta na početku je oznaka za koreni direktorijum servera.

** Praktično (i slikovito): budući da navedena HTML datoteka nije u korenom direktorijumu, prvo je potrebno "vratiti se korak unazad": ../, posle čega se može preći u direktorijum slike).

Ukoliko se navede putanja prema slici na udaljenom serveru (recimo https://www.nekiserver.com/slike/nekaslika.png), i ukoliko je putanja ispravna, nije (očigledno) potrebno voditi računa o hijerarhiji foldera u odnosu na html datoteku (jer je zadata apsolutna putanja do datoteke na drugom/udeljenom serveru), ali: u pitanju je računar na koji (najverovatnije) nemamo uticaja, lako * se može desiti da linkovana slika bude uklonjena ili premeštena, i (naravno), u navedenim okolnostima, <img> tag gubi (pravu) funkciju.

Ako se desi "da ostanemo bez slike" (pod prethodno navedenim okolnostima), na scenu stupa atribut alt (skraćeno od "alternative"), preko koga je definisan tekst koji će se pojaviti umesto nedostajuće slike (što naravno neće nadomestiti nedostatak slike, ali, pružiće koliko-toliko adekvatnu informaciju o tome "šta predstavlja slika koje nema").

Atribut title definiše naslov slike, pri čemu (naravno) nije u pitanju naslov koji će se videti neposredno (nalik na naslove koji su definisani preko tagova <h1> - <h6> i <title>), već, naslov koji će 'iskočiti' u malom prozorčiću ** onda kada se kursor zaustavi iznad slike, i nestati čim se kursor ukloni (a slično važi i za druge elemente koji mogu imati definisan atribut title).

* U praksi, ne dešava se često, ali, može se desiti ("lako").

** Praktično, u pitanju je pop-up prozor, koji automatski nestaje čim 'mrdnemo kursor'. :)

Da bi primer sa slikom mogao da 'proradi', preuzmite sa interneta sliku po svom izboru (osim ukoliko se niste već snašli na neki drugi način), i smestite sliku pod nazivom slika_01.png u isti folder sa html datotekom.

Pre nego što pređemo na CSS, upoznaćemo se sa još nekoliko korisnih opcija: "negde usput" pomenuli smo mogućnost definisanja linkova koji se na stranicama pojavljuju u obliku slika (umesto u obliku teksta), a svakako je uputno da se upoznamo i sa načinom za pisanje komentara u HTML kodovima (i nekolicinom drugih 'sitnijih tehnikalija') ....

Linkovi sa slikom

Linkovi koji se prikazuju kao slike (umesto teksta), česta su pojava na web stranicama i (uglavnom) deluju prilično dopadljivo, ali, ugnežđavanje <a> tagova i <img> tagova neretko ume da zada muke početnicima (iz nekog razloga :)), i stoga ćemo u nastavku prikazati primer pravilnog ugnežđavanja.

Pravilna struktura "linka sa slikom" je prilično jednostavna (na svu sreću :)), i podrazumeva da se <img> tag postavlja kao unutrašnji sadržaj <a> taga:

		
<a href="/clanci/osnove_racunarske_grafike">
	<img src="./slike/slika_01.jpg"/>
</a>
		
	
Slika 15. - Primer pravilnog ugnežđavanja <a> tagova i <img> tagova.

Ukratko: slika je "ono što će se videti", a link se podešava isto kao kada bi umesto slike trebalo da se pojavi tekst.

Rezultat možemo videti ispod. *

Da biste pravilno otvorili link, pozovite meni preko desnog klika, i izaberite opciju "Open link in new tab" (a može i preko prečice, CTRL + klik).

* Dodatne primere možete naći na stranici 'Svi članci' (ponovo preporučujemo opciju "CTRL + klik" za otvaranje (da ne biste 'odlutali' od članka koji trenutno čitate)). :)

Kada otvorite stranicu 'Svi članci', bilo koja od "sličica" vodi prema odgovarajućem članku.

Komentari u kodu

Za pisanje komentara, to jest, delova koda koji se neće videti kao deo sadržaja (i neće uticati na strukturu web stranice), koriste se posebni tagovi ....

  • <!-- - početak komentara
  • --> - završetak komentara

.... preko kojih se definišu blok komentari.

.... a ukoliko je potrebno da komentar bude u jednoj liniji, takođe se mora poštovati ista sintaksa.

Pogledajmo primer:

		
<!-- "Linijski" komentar -->

<!--
	Blok komentari mogu se koristiti za
	detaljan opis važnijih delova koda
	(na isti način kako se blok komentari
	koriste i u drugim jezicima).
-->
		
	
Slika 16. - Primer upotrebe komentara u HTML kodu.

Finalna HTML struktura primera

Korišćenjem do sada prikazanih (osnovnih) tehnika, kreirali smo sledeću HTML strukturu (koju ćemo nadalje koristiti):

		
<!DOCTYPE html>

<html>
	<head>
		<meta charset='utf-8'/>
		<title>Naša prva stranica</title>
		<link rel='stylesheet' href='./stil.css'/>
	</head>

	<body>
		<h1>Ovo je glavni naslov</h1>
		
		<h2>Podnaslov 1</h2>
		
		<p>
			Tekst prvog pasusa.
		</p>

		<h2>Podnaslov 2</h2>

		<p>
			Tekst drugog pasusa.
		</p>

		<p>
			Dobar dan!
		</p>

		<a href='https://www.codeblog.rs'>Ovo je link</a>

		<img src='./slika_01.png' alt='Slika 1' title='Slika 1'/>
	</body>
</html>
		
	
Slika 17. - Dovršen HTML dokument koji ćemo, u sledećem poglavlju, stilizovati upotrebom CSS-a.

Slobodno proširite pasuse obimnijim tekstom (po želji), a novost u odnosu na prethodno stanje je tag <link>.

Tag <link>

Tag <link> je jednodelni tag preko koga se HTML datoteka povezuje sa drugim datotekama (najčešće na istom serveru), ali, ne u smislu direktnog otvaranja sadržaja takvih datoteka (kao što je slučaj kada se koristi <a> tag), već, u smislu internog povezivanja osnovne HTML datoteke sa određenim sadržajima koji su neophodni za funkcionisanje stranice (CSS datoteke, ikone i sl).

Ovoga puta, tag <link> smo iskoristili da HTML datoteku povežemo sa datotekom stil.css, u koju ćemo upisivati CSS kodove koje ćemo prikazivati u nastavku.

CSS - Cascading Style Sheets (estetika web stranica)

CSS (Cascading Style Sheets) je jezik koji se koristi za stilizaciju HTML elemenata i vizuelno strukturiranje stranica (tj. definisanje prostorne podele), i sve se podešava na prilično jednostavan način, preko koncizne i veoma razumljive sintakse. *

U pitanju je svojevrsna kombinacija tipografije i grafičkog dizajna u opštem smislu, a prisutne su i jednostavne animacije, kao i "tehnikalije" opšteg tipa.

Pre nego što počnemo da prikazujemo CSS kodove, zarad "opšte kulture" ćemo pomenuti da se podešavanje stila HTML elemenata može obaviti i direktnim zadavanjem vrednosti atributa na samim elementima ....

		
<body background-color='purple'>
	<p font-family='Arial'>
	</p>
</body>
		
	
Slika 18. - Definisanje stila HTML elemenata preko atributa.

.... ali, u pitanju je prilično zastareo i nepraktičan metod, koji je gotovo u potpunosti istisnut iz upotrebe još pre dvadesetak godina (u vreme kada je CSS masovnije ušao u upotrebu).

Povremeno ćete se susretati sa određenim sajtovima (uglavnom "starijim" sajtovima), na kojima se koristi prethodno prikazana sintaksa, ali, broj takvih sajtova je mali.

Preko sintakse koja je elegantnija i preglednija (od 'navođenja HTML atributa u tagovima') ....

		
body {
	background: purple;
	margin:     0;
}

p {
	font-family: Arial;
	font-size:   1rem;
	line-height: 1.6;
}
		
	
Slika 19. - Primer CSS selektora koji obavljaju "isti posao" kao HTML atributi sa prethodne slike.

.... CSS omogućava: bojenje elemenata, skupljanje i razvlačenje elemenata, približavanje i udaljavanje elemenata jednih od drugih .... i mnogo šta još.

* CSS jeste prilično jednostavan jezik (kao što smo naveli), ali, radije nemojte (onako kako je često popularno), misliti da je u pitanju 'banalna' tehnologija koja se u potpunosti može savladati za nekoliko dana uz minimum truda. :)

Osnovne postavke jezika su jednostavne za razumevanje i lako ih je usvojiti (što jeste dobro za početnike :)), ali, ozbiljnije poznavanje CSS-a (bez koga nema modernih i dopadljivih sajtova), nikako ne dolazi "samo od sebe", već podrazumeva trud, pažnju i (naravno) praksu.

Međutim, da počnemo od nečeg najosnovnijeg (baš kao što dolikuje) ....

Pojam selektora (i atributa)

U jeziku CSS, termin "selektor" označava posebno formatiran odeljak programskog koda koji sadrži pravila za definisanje stila određenog elementa stranice ili grupe elemenata.

Ukoliko za primer uzmemo da je potrebno definisati zajednička svojstva svih paragrafa na stranici (tag <p>), zadatak se rešava korišćenjem CSS bloka koji sadrži: oznaku "p" i (između vitičastih zagrada), proizvoljan broj redova koji su formirani po obrascu atribut: vrednost;.

		
p {
	atribut_1: vrednost_1;
	atribut_2: vrednost_2;
	....
	atribut_n: vrednost_n;
}
		
	
Slika 20. - Opšta šema CSS bloka koji se odnosi na paragrafe (tag <p>).

Atributi tj. pojedinačna svojstva koja se mogu zadavati preko CSS koda (visina, širina, boja, položaj i sl) - navode se u skladu sa zahtevima i potrebama, ali (kao što smo ranije nagovestili), atribute i vrednosti atributa ne možemo "izmišljati" i pisati ih "kako nam je volja", već je samo moguće koristiti unapred definisane atribute (sa odgovarajućim vrednostima).

Sa "mogućim" atributima (i odgovarajućim vrednostima), upoznavaćemo se postepeno, kroz prvih nekoliko članaka koji su posvećeni web dizajnu.

Međutim, bitno je odmah naglasiti da se selektori ne pišu samo zarad 'pronalaženja' opštih kategorija HTML elemenata (tj. "tagova"), već se mogu definisati i selektori koji pristupaju pojedinačnim elementima ili grupama elemenata, a moguće su i razne zanimljive kombinacije (o čemu ćemo pisati u II nastavku, ali, za sada se vraćamo na "HTML selektore").

Na sajtu koji koristimo kao primer u članku, definisaćemo selektore za sledeće elemente: <p>, <h1>, <h2>, <img> i <a>.

		
/*
	Nekoliko uobičajenih CSS selektora
	(koji odgovaraju HTML datoteci sa slike #17):
*/

h1 {
	font-family: Arial, sans-serif;
	font-weight: bold;
	color:       orange;
	font-size:   26pt;
}

h2 {
	font-family: Arial, sans-serif;
	font-weight: normal;
	/* color:       black; */
	font-size:   20pt;	
}

p {
	font-size: 13pt;
}

a {
	font-family:     Arial, sans-serif;
	font-weight:     bold;
	font-size:       14pt;
	color:           purple;
	text-decoration: none;
}

img {
	display:    block;
	width:      400px;
	height:     240px;
	margin-top: 20px;
}
		
	
Slika 21. - CSS selektori koji definišu stil HTML datoteke sa slike #17.

Iako atributi i vrednosti iz gornjeg bloka skoro doslovno 'opisuju sami sebe', svejedno ćemo dodatno pojasniti kod koji smo videli.

- Preko atributa font-family bira se font za grupu elemenata na koje selektor utiče, pri čemu su, u različitim selektorima u gornjim primerima, navođene dve stavke ('za svaki slučaj'): ukoliko prvi navedeni font ne bude pronađen, biće iskorišćen drugi, čime se postiže (čak i u "najgorim" slučajevima koji se retko dešavaju i koji se uz malo spretnosti lako mogu izbeći), da prikazani tekst bude najpribližniji onome što smo zamislili.

U opštem smislu ('inače'), može se desiti da drugi navedeni font takođe ne bude pronađen, međutim, u prethodnom primeru nije naveden konkretan font, već zapravo familija (tj. kategorija) fontova, i stoga će browser (u najgorem slučaju), za prikaz iskoristiti podrazumevani font iz navedene kategorije.

- Atribut font-weight definiše debljinu slova (tačnije, debljinu linija na slovima), preko poznatih vrednosti "normal" i "bold" (pri čemu zapravo ima i drugih imenovanih opcija, a mogu se koristiti i brojčane vrednosti (o čemu smo pisali u članku o fontovima)).

- Atributi color i font-size definišu boju i veličinu slova, a atribut text-decoration, uz zadatu vrednost none, uklanja podvučenu crtu sa linkova (sasvim je moguće da je u pitanju najomiljenija opcija većine polaznika koji se tek upoznaju sa CSS-om). :)

- Što se tiče atributa koje smo koristili za img selektor: pored prepoznatljivih atributa width i height (preko kojih se zadaju širina i visina), koristili smo i atribut display (sa vrednošću block), preko koga se slika definiše kao blok element, * a koristili smo i atribut margin-top, preko koga je zadata gornja margina slike, čime se slika pomera nadole u odnosu na link.

- Što se tiče komentara u kodu, možete primetiti da se u CSS-u koriste "C-ovski" blok-komentari, koji počinju sa /* i završavaju se sa */ (moguće je koristiti i linijske komentare, koji počinju sa //, ali, nije preporučljivo).

* Da se podsetimo, slike (čija se pojava definiše preko tagova <img>), inače su inline elementi.

Takođe (usput): CSS kod koji je zapisan u zasebnoj datoteci, zvanično nosi naziv "eksterni CSS" (eksterni = spoljašnji).

Smatramo da smo za sada izneli dovoljno informacija (koje čitaoci treba da procesiraju na adekvatan način, pre nego što nastavimo da se upoznajemo sa ostalim tehnikama web dizajna), i stoga, za kraj uvodnog članka, osvrnućemo se samo još na tzv. web-dev alate koje smo ukratko pomenuli u odeljku o softveru koji se koristi pri kreiranju sajtova.

Web-dev alati koji su dostupni u browserima

Preko prečice F12 (koja važi u velikoj većini browsera), pristupa se alatima koji omogućavaju (zmeđu ostalog):

  • sagledavanje HTML strukture stranice
  • pregled CSS datoteka u izvornom obliku
  • pregled CSS selektora koji se tiču elementa koji se trenutno posmatra
  • pregled korišćenih JavaScript datoteka
  • pristup konzoli preko koje JavaScript ispisuje servisne poruke korisniku

Pomenuli smo najuobičajenije opcije, ali, prisutan je i izvestan broj drugih prozora (koji takođe pružaju korisne informacije).

Pogledajmo i nekoliko primera na sledećim slikama (po potrebi, kliknite na sliku za prikaz u punoj rezoluciji):

  • opšti prikaz browsera sa otvorenim web-dev alatima

    Web-dev alati - slika 1
    Slika 22. Web dev alati (tipično se pokreću preko prečice F12).
  • prikaz izvornog HTML koda (koji odgovara otvorenoj stranici)

    Web-dev alati - slika 2
    Slika 23. Prikaz HTML strukture u browseru.
  • pregled korišćenih CSS datoteka

    Web-dev alati - slika 3
    Slika 24. Pregled korišćenih CSS datoteka.
  • pregled CSS selektora i pregled fonta koji je korišćen za prikaz određenog elementa (kao i pregled drugih tekstualnih parametara) *

    Web-dev alati - slika 4
    Slika 25. Prikaz CSS selektora i tekstualnih parametara koji su vezani za trenutno izabrani element.

* Sagledavanjem informacija koje su prikazane na prethodnoj slici, lako se može utvrditi (npr), da li je font koji je predviđen za prikaz određenog elementa - zapravo pronađen i upotrebljen.

Pored navedenih opcija, lako se može sagledati i kako će stranica izgledati na ekranima mobilnih uređaja (pri čemu rezoluciju možemo birati sami) ....

Web-dev alati - slika 5
Slika 26. Simulacija prikaza stranice na ekranu mobilnog telefona.

.... a svakako su prisutne i druge opcije, kojima se nećemo previše baviti za sam početak (pustićemo vas da druge jednostavne opcije istražujete sami i sa njima se polako i postepeno upoznajete).

Sledeći koraci ....

Prvi članak (koji ipak predstavlja samo mali uvod u HTML i CSS), relativno je obiman sam po sebi, pa stoga dajte sebi dovoljno vremena da 'pohvatate konce' (tj. da se pravilno upoznate sa svim osnovnim tagovima i ostalim pojedinostima koje smo naveli), pre nego što nastavimo.

Na sledećoj adresi ....

Web dizajn 01 - primer

.... možete pogledati gotov primer sajta koji smo postepeno definisali.

U sledećem članku koji je posvećen web dizajnu: Web dizajn - 2. deo, nastavićemo da se upoznajemo sa osnovama HTML-a i CSS-a (i pri tom ćemo posebnu pažnju posvetiti klasama i id-ovima, kao i internom i linijskom CSS-u).

Autor članka Nikola Vukićević Za web portal codeblog.rs
Napomena: Tekstovi, slike, web aplikacije i svi ostali sadržaji na sajtu codeblog.rs (osim u slučajevima gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog pismenog odobrenja autora.
© 2020-2026. Sva prava zadržana.
Facebook LinkedIn Twitter Viber WhatsApp E-mail
početna > Članci > Uvod u web dizajn - 1. deo - Početni koraci
codeBlog codeBlog
Sajt posvećen popularizaciji kulture i veštine programiranja.
Napomena: Tekstovi i slike na sajtu codeblog.rs (osim u slučajevima, gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog odobrenja autora.
© 2020-2026. Sva prava zadržana.
Facebook - logo
Instagram - logo
LinkedIn - logo
Twitter - logo
E-mail
Naslovna
   •
Uslovi korišćenja
   •
Obaveštenja
   •
FAQ
   •
Kontakt