Sunteți pe pagina 1din 4

Proiectarea siturilor Web

Utilizarea cadrelor (frame-urilor)


Sabin Corneliu Buraga

Cele de mai jos reprezint un supliment la coninutul crii Sabin Buraga, Proiectarea situri-
lor Web (ediia a doua), Polirom, Iai, 2005 detalii la adresa
http://www.infoiasi.ro/~design/.

n mod obinuit, utilizatorul vede pe ecran un document XHTML ncrcat n fereastra


asignat de navigator acelui document. Pentru a spori atractivitatea paginilor Web sau
pentru a organiza mai eficient informaiile din cadrul documentelor, unii autori de pagini
Web recurg la tehnica subferestrelor, diviznd fereastra navigatorului ntr-un set de
seciuni (cadre). Fiecare astfel de subfereastr poate ncrca documente XHTML, n
manier independent, astfel nct simultan n aceeai fereastr a navigatorului se pot vi-
zualiza mai multe pagini WWW. Vom numi un asemenea fragment de fereastr cadru
(frame).
Documentele care folosesc cadre vor aparine DTD-ului frameset definit de specificaia
HTML 4.01 sau XHTML 1.0.
Definirea unei structuri de cadre este relativ simpl, similar, ntr-un anume sens, spe-
cificrii unui tabel. Pentru aceasta, n locul elementului <body> se va specifica marcato-
rul <frameset>. Acest element va include mulimea de cadre coninnd documentele
XHTML care vor fi afiate de navigator.
Astfel, structura general a unei pagini incluznd cadre va fi urmtoarea (se substituie
elementul <body> cu <frameset>):
<html>
<head>
...
</head>
<frameset>
...
</frameset>
</html>
Elementul <frameset> poate conine, la rndul lui, alte apariii de tipul
<frameset>.
Pentru a defini o structur de cadre va trebui stabilit un numr de linii/coloane, iar
pentru fiecare linie sau coloan va trebui specificat un coninut (o resurs Web desemnat
de un URI) ori o alt mulime de cadre (un nou <frameset>).
Marcatorul <frameset> poate conine atributele rows sau cols care definesc lis-
ta de rnduri i, respectiv, coloane care vor aprea n cadrul ferestrei. Aceast list va pre-
ciza spaiile ocupate de fiecare dintre rndurile/coloanele specificate, ntr-o manier abso-
lut (n pixeli) sau procentual. Caracterul * poate fi utilizat pentru a indica navigatoru-
lui s calculeze spaiul rmas disponibil n cadrul unei structuri de cadre.
De exemplu, cols="333, 10%, *, 3*" va produce un set de patru coloane:
prima va ocupa 333 de pixeli, a doua va ocupa 10% din limea total a ferestrei navigato-
rului, iar urmtoarelor dou coloane li se va atribui spaiul rmas disponibil, respectnd
raportul 1/3.
Un alt exemplu prin care se va genera un aranjament de 23 cadre, fiecare cadru pu-
tnd conine un document arbitrar este urmtorul:
<frameset rows="33%,*" cols="33%,34%,33%">
...
</frameset>
Alocarea de spaiu prin rows sau cols pentru fiecare element al structurii de cadre
va fi valabil de cele mai multe ori numai pentru afiarea iniial a cadrelor, utilizatorul
putnd ulterior modifica acest aranjament.

1
Proiectarea siturilor Web

Coninutul iniial al unui cadru va fi desemnat prin intermediul marcatorului


<frame>, ale crui atribute importante sunt:
src indic URL-ul documentului care va fi ncrcat n acel cadru;
name specific numele cadrului (nume care va putea fi folosit ulterior ca int a
unei ancore, ntr-o construcie de tipul <a href="..."
target="nume_cadru">...</a>);
noresize inhib posibilitatea alterrii dimensiunilor unui cadru;
scrolling definete modalitatea de scroll (derulare) a coninutului unui cadru,
putnd lua valorile auto, yes sau no (drept implicit va fi considerat valoarea
auto);
frameborder specific apariia chenarului din jurul unui cadru (valorile legale
sunt 0 sau 1);
marginwidth i marginheight denot spaierile pe orizontal i, respec-
tiv, vertical dintre coninutul unui cadru i marginea lui.

Vechiul sit al Facultii de Informatic din Iai (1997) construit cu ajutorul cadrelor

Un exemplu de manual electronic, folosind cadre:


<html>
<head>
<title>Manual</title>
</head>
<frameset rows="20%,*,2*">
<frameset cols="*,200">
<frame src="cuprins.html" name="cuprins" />
<frame src="coperta.jpg"
scrolling="no" noresize="noresize"
marginwidth="0" marginheight="0" />
</frameset>
<frame src="legaturi.html" frameborder="0" />
<frame src="prefata.html" frameborder="0"
name="afisare" />
</frameset>

2
Proiectarea siturilor Web

</html>
Pentru a defini cadrul-int de ncrcare a unui document se va folosi atributul
target="URI" care poate s apar n elemente precum <a> i <form>. Astfel, con-
inutul unui cadru se va putea schimba, dei structura general a cadrelor de pe ecran va
rmne aceeai.
De exemplu, toate legturile spre capitole, precizate n documentul cuprins.html,
vor putea avea forma <a href="..." target="afisare">...</a> (a se
vedea cele descrise mai sus).
Pentru atributul target exist cteva valori predefinite:
_blank va determina navigatorul s ncarce resursa specificat ntr-o nou fereas-
tr (instan) a acestuia;
_self indic navigatorului s ncarce resursa n cadrul curent;
_parent denot printele imediat al cadrului actual (dac frame-ul nu are printe,
este echivalent cu _self);
_top va conduce la ncrcarea resursei n fereastra original, anulnd orice structu-
r de cadre (va avea acelai efect ca i _self, n cazul n care cadrul nu are nici un
<frameset> printe).
De notat faptul c varianta XHTML 1.0 strict i XHTML 1.1 interzic utilizarea atri-
butului target (pentru a folosi n continuare acest atribut, recurgei la XHTML 1.0
varianta tranziional sau cu cadre; nu recomandm ns o astfel de abordare).
Anumite navigatoare (cele text sau unele mai vechi) nu au suport pentru afiarea ca-
drelor, pentru prevederea acestui caz putndu-se furniza un coninut alternativ prin in-
termediul construciei <noframes>...</noframes>:
<html>
<head>
<title>Pagina mea</title>
</head>
<frameset cols="133,*">
<frame src="menu.html" name="menu"
noresize="noresize" />
<frame src="salut.html" name="afisare" />
<noframes>
<p>Acest navigator nu suport cadre!</p>
<p>Versiunea fr cadre
este <a href="menu.html">aici</a>.</p>
</noframes>
</frameset>
</html>
n anumite situaii este de dorit s se insereze un cadru n interiorul unui document
XHTML, fr a se defini o structur de cadre. Acest deziderat este ndeplinit de cadrele
interne. Un cadru intern nu-i va putea modifica dimensiunile i va fi inclus prin marcato-
rul <iframe>. Avem astfel posibilitatea de a ncorpora ntr-o pagin Web alt document
XHTML sau oricare alt resurs dorit.
Atributele asociate elemenului <iframe> i, de asemenea, valorile acestor atribute
sunt identice celor de la <frame>, exceptnd noresize care nu mai poate fi utilizat.
Apar, n plus, atributele width specificnd limea i height semnificnd nlimea
unui astfel de cadru.
Un exemplu de utilizare este urmtorul:
<html>
<head>
<title>Cadre interne</title>
</head>
<body bgcolor="#CCCCCC" text="black">

3
Proiectarea siturilor Web

<h2 align="center">Design Web (glosar)</h2>


<iframe src="web-glosar.html"
width="500" height="300"
frameborder="0" align="center" />
Navigatorul nu suport cadre interne...
</iframe>
<hr size="1" />
</body>
</html>

Pagina Web incluznd un cadru intern

Actualmente, cadrele tind a fi nlocuite de tabele sau de alte construcii avnd ataate
proprieti de stil CSS, motivele fiind legate de ocuparea de resurse i de timpul de ncr-
care a tuturor resurselor corespunztoare fiecrui cadru. De reinut i faptul c nu toate
navigatoarele (mai ales cele mai vechi) suport cadre interne. Frame-urile pot fi frustrante
pentru majoritatea utilizatorilor Web-ului, n prezent fiind considerate o soluie inadecvat
de design Web.

S-ar putea să vă placă și