Frames

       Frames, (ramovi, okviri, kosturi) vas priblizavaju finalu vase obuke o osnovama HTML-a i resavanju tajni u uspesnom programiranju WWW-a.
   Za razliku od <table> okvira, koji dele radnu povrsinu jednog site-a u vise celija za popunu sa tekstom i ostalim sdrzajem, u frame okvire se ne upisuje nista, nego oni sluze da se u njih "uvuce", ubaci, neka vec gotova, popunjena, stranica (sajt). Znaci, prvo se uzme jedan prazan list (site), pa se onda on izdeli u frame delove, a onda u te frame samo napisete poziv (link) za stranicu koju hocete da vam se prikazuje u tom okviru. To moze biti neka vasa ranije ili kasnije uradjena stranica, ali isto tako i bilo cija, sa nekog servera na Internetu ili nekoj lokalnoj mrezi. Na mnogim sajtovima mozete videti podelu u tri frame-a, gde jedna stranica viri s leve strane, druga svojim vrhom izviruje kao stalni naslov iznad, a treca je veliki ostatak gde citate i skrolujete glavninu. Trebate obratiti paznju na izraz "izvirivanje", jer se stranice pozvane linkom upravo tako i prikazuju u frejmovima. Znaci, browser ih ne "sabija" da bi ih prikazao kompletne, nego se vide samo onolikim delom, kolika je velicina frame-a u koji su "uvucene". Zato, kada radite stranicu koju ste namenili za prikaz u nekom vasem frame-u, trebate voditi racuna o tome da sadrzaj smestite tako, da se vidi u granicama frame-a. Sta se zapravo tada desava, najbolje cete videti u crtezima ispod, koji slede. To je primer i ovog web-a sa tri frames site, kojeg upravo gledate.





   Kako u HTML-u izgleda podela matichne stranice, mozete videti u sadrzaju koji sledi:.
---------------------------------------------------------
<html>
<head> 
</head>

<frameset rows="64,*">
<frame name="Gornji"  src="gornji.htm">
<frameset cols="150,*">
<frame name="Levi" src="levi.html">
<frame name="Centralni"  src="predavanje5a.htm"> (Zadnji frejm nema dimenzije. Preuzima sav ostatak)
</frameset>
<body></body>
</html>
-------------------------------------------------------------------------------------

   Dakle, <frameset> tag je taj u kojem odredjujete vrstu i velicinu podele matice, nakon cega postavljate i <frame> sa unutrasnjim atributima, poput name= za naziv stranice, src= za adresu odakle se stranica poziva, kao i ostale o kojima ce ovde biti reci. Sad je bitno uociti da se ova frame-grupacija komandi smesta izmedju </head> i <body> tagova, kao u neku medjuzonu, a to je vazno zato sto Netscape browser ignorise <frameset> podatke, ako se smeste izmedju <head></head> ili <body></body> tagova. No, kako se to uglavnom ne obavlja vise svojerucnim upisom, nego vam HTML editori to sami proracunavaju i upisuju prema draw-funkcijama koje koristite za razvlacenje ili suzavanje frame-a pri izradi, potrebno je samo da se upoznate sa namenom atributa i parametara koje bi eventualno trebali naknadno podesiti. Osim toga, svaki bolji HTML editor vam u svojoj frame ponudi daje izbor vec gotovih frame-sablona koji se najcesce koriste, pa je potrebno samo kliknuti na neki izbor i frame konstrukcija je automatski spremna da u nju samo upisete adrese stranica za koje zelite da se tu prikazuju.
  
<FRAMESET> je glavni tag za definiciju frame okvira i u njega idu dva bitna atributa, to jeste, rows= koji browseru "kaze" da se matica preseca vodoravno, pa kao parametar ide broj piksela za visinu tog frejma, ili cols= kojim se povrsina matice preseca uspravno pa se vrednost prvog broja u parametru odnosi na sirinu frame-a. U gornjem primeru se vidi primena oba atributa, gde kao drugi broj njihovih parematara stoji oznaka ,* (apostrof zvezdica) sto znaci da ce ta druga dimenzija ici do kraja slobodnog prostora na ekranu. Te brojne oznake se razdvajaju zarezom, a mogu se koristiti kao brojne oznake u pikselima, procentima ili kao relativna odredba pomenutom zvezdicom. Sa rows= se kaze da ce frame biti vodoravna traka, ili cols= kojim se frame odredjuje kao uspravna traka, pa se zato druga dimenzija u parametru oznaci kao relativna (,*), sto znaci da traka ide koliko bude slobodnog prostora na ekranu. U gornjem primeru se vidi da za treci frejm nije data nikakva <frameset> odredba, sto onda znaci da su obe dimenzije relativne, pa se prikaz obavlja u celom ostatku slobodnog prostora. Kako to na kraju izgleda, posmatrate upravo na ovoj prezentaciji.
  
Smisao te funkcionalnosti cete najbolje uociti ako gore u svome browseru kliknete na opciju za prikaz svega u tzv. punoj slici, pa cete videti kako se prikaz ovog sadrzaja povecao zahvaljujuci tom nedostatku jednog parametarskog ogranicenja u gornjem i levom frame-u, a sve ostaje i dalje u istoj konstrukciji. Time se ujedno resava i problem prikaza za razlicite rezolucije ekrana.
  
I sada, preostaje jos jedino da se upoznate i sa atributima za <frame> tag koji ide nakon <frameset>, a kojima se odredjuju i neke unutrasnje karakteristike jednog frame-a, pa ste s ovim HTML osnovama konacno gotovi. Onda vam preostaju jedino tzv. majstorluci i licna nadogradnja.

name= je obavezan atribut u kojem se kao parametar navodi i odredjuje ime frame-a. To ime vam onda sluzi kao meta (target=) kada linkujete neki dokument (site) da se prikaze u tom frame-u. pa tada nakon onoga src="../nekiSite.html" dodate i atribut target="Ime frame-a", i linkovani site se pojavljuje u tom frame-u.
src= je takodje obavezan atribut unutar <frame> i u njega se kao parametar upisuje adresa dokumenta koji ce se kao prvi pojaviti u tom frame-u.
noresize vrlo bitan atribut, koji nema nikakve parametre, ali njegovo prisustvo unutar taga onemogucava klijenta da kursorom pomera dimenzije okvira od frame-a. Naime, bez ovog atributa je omoguceno redimenzioniranje frame okvira po zelji klijenta.
marginwidth="value" atribut i parametar koji upisujete ako ipak zelite mogucnost pomeranja levog i desnog  okvira na nekom frame-u, pomocu "hvatanja" kursorom misha.
marginheight="value" isto to samo sada za gornju i donju stranicu frame okvira.
scrolling= atribut kojim se odredjuje funkcija ivicnih klizaca za pomeranje sadrzaja. Parametri su "yes" | "no" | ili "auto", gde prvi odredjuje prikaz bez obzira na kolicinu sadrzaja, drugi svojom primenom iskljucuje ikakav prikaz klizaca, a treci odredjuje prikaz samo onda ako to velicina nekog sadrzaja sama po sebi zahteva, pa se klizaci pojavljuju ili ne automatski, prema velicini dokumenta ucitanog u frame.
frameborder= atribut sa parametrima "yes" ili "no", cime se odredjuje dali ce biti prikazane i okvirne linije oko frame-a. Bez ovog atributa browseri automatski prikazuju okvir.
framespacing="value" ovim parametrom i atributom omogucavate stvaranje medjuprostora izmedju frame-ova, pa se promenama velicina uvucenog sadrzaja stice utisak pokretnih frame-a. Medjutim, kao parametar mozete upisati i neki stalan broj razmak-piksela.

Ovim bi se obrazlaganje frame funkcija moglo smatrati zavrsenim. Treba samo dodati da je uz sve ovo omogucena i upotreba <noframes></noframes> taga koji je namenjen za browsere koji ne mogu citati frame sadrzaje i odredbe, pa se izmedju tog alternativnog taga ubaci neki sadrzaj koji takvi browseri onda prikazu, ali posto je savremenost vec prevazisla i takve potrebe, nema razloga da se onda i time zamarate. U slucaju da vam vas HTML editor automatski upisuje i taj tag, ostavite ga praznog kakav i jeste, ili vec ako hocete, upisite tu "Za pregled ovoga sadrzaja, potrebno je da imate instalisan IExplorer ili Netscape browser.", mada je malo verovatno da ce vam neko nekada to uspeti i da vidi. Jer, ko to danas nema jedan od tih, ili cesto i oba navedena browsera za surfanje u mrezi. Osim toga, i razvoj tih browsera je neprekidan, tako da danas mozete atribute border= | fremeborder= | framespacing= smestiti i u <frameset> tag i zadnja generacija browsera ih uvazava jednako kao i u <frame> tagu. Sve je u stalnom razvoju.
   I, na kraju, ako zelite da vidite i kako izgleda web u kom su primenjena cetiri frame okvira u vodoravnoj podeli, onda na homepage idite u English ili Deutsch sektor.

Radovanovic Dragan