Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   



PC Magazine Romania - IPRO

Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   








Clic aici
PC Report - ultimul numar aparut


IPRO - PC Magazine Romania, 2001

Comunitatea experților și a cititorilor PC Magazine
Internet PRO

Poziționarea conținutului în paginile web

Emanuel Baruch

Una din cele mai importante probleme cu care ne confruntăm atunci când construim o pagină web este poziționarea imaginilor și a textului, a conținutului în general. Ar fi foarte simplu dacă am putea preciza cu ajutorului limbajului HTML atribute de genul: imagine centrată orizontal și vertical, paragraf care apare întotdeauna la baza paginii - indiferent de dimensiunea ferestrei, text pe 3 coloane etc. Din păcate, problema este un pic mai complicată. Cu toate acestea, pe majoritatea paginilor web bine realizate veți observa că fiecare element are locul său și nimic nu este lăsat la voia întâmplării.

Containere bine aliniate
În general, pentru a putea controla alinierea sau aspectul conținutului este indicat ca acesta să fie introdus în așa-numite ,,containere". Există două opțiuni pe care vi le recomand: <div></div> și <p></p>. Tag-ul div delimitează o zonă de pe pagina web, iar p un paragraf. Aceste tag-uri suportă atributul de aliniere align cu valoarea ,,left"",right " și ,,center". Acestea fiind spuse, problema alinierii orizontale este aproape rezolvată. Împărțiți textul în paragrafe și precizați cum doriți să fie aliniat acesta (la stânga, la dreapta sau centrat). Veți observa că va apărea un mic spațiu între paragrafe. Această delimitare contribuie de asemenea la o mai bună lizibilitate a textului. Nu este indicată utilizarea unor blocuri de text prea voluminoase, deoarece pe ecranul monitorului ochiul cititorului va obosi mult mai repede decât în cazul unei cărți.

Cele două tag-uri se pot folosi și intercalat. O zonă delimitată de un tag div poate conține la rândul ei alte sub-zone delimitate de div-uri sau p-uri. Cu alte cuvinte, un div poate include alte div-uri și paragrafe, însă nu este indicată includerea în tag-ul p a altor paragrafe sau zone div. Asupra conținutului va avea efect întotdeauna atributul ultimului container în care a fost introdus (,,container-părinte"). Astfel, dacă aveți o zonă aliniată la dreapta iar în aceasta zonă doriți să introduceți un paragraf centrat, puteți proceda astfel:

<div align="right">
Conținut aliniat la dreapta
<p align="center">
Paragraf centrat
</p>
</div>

Valoarea implicită a atributului de aliniere a conținutului este la stânga, adică align="left". Aceasta înseamnă că dacă nu introduceți nici un atribut în tag-urile p și div, acestea vor fi aliniate la stânga, cu condiția ca ele să nu fie intercalate în alte zone cu atribute de aliniere, deoarece, în acest caz, ele se vor alinia după cum dictează ,,containerul părinte".

Dacă doriți un spațiu suplimentar în jurul unei imagini, folosiți tag-urile vspace și hspace.

Unde sunt imaginile?
O altă problemă este alinierea imaginilor care însoțesc textul. Tag-ul img care inserează o imagine într-o pagină web suportă și el atributul align="left", respectiv align="right". Atunci când o imagine este introdusă în text cu unul din aceste atribute, ea se va alinia la stânga, respectiv la dreapta paginii, fiind înconjurată de text. Atenție, nu folosiți atributul align="center" pe tag-ul unei imagini, deoarece nu va avea nici un efect. Pentru a centra o imagine introduceți-o într-un div centrat:

<div align="center"> <img src="imagine.gif"></div>

Atributul align al unei imagini mai suportă și alte valori, și anume top, middle și bottom. Acestea se referă la alinierea verticală a imaginilor, în funcție de textul care le însoțește. Top va determina ca textul să fie aliniat în partea de sus a imaginii, middle va face ca mijlocul textului să fie aliniat cu mijlocul imaginii, iar bottom va aduce pe aceeași linie partea de jos a textului cu partea de jos a imaginii. Valoarea implicită este valign="bottom".

Dacă doriți un spațiu suplimentar în jurul unei imagini, folosiți tag-urile vspace și hspace. Vspace (Vertical Space) definește spațiul vertical care va rămâne liber deasupra și dedesubtul imaginii iar hspace (Horizontal Space) spațiul orizontal care va rămâne liber în dreapta și stânga imaginii. Tag-urile pot fi folosite împreună sau numai câte unul. Utilizarea acestor tag-uri este indicată pentru ca textul care însoțește o imagine să nu apară lipit de aceasta. Nu uitați că aceste tag-uri adaugă spațiu atât sus cât și jos, respectiv atât în dreapta cât și stânga. Așadar nu este posibilă adăugarea de spațiu liber numai într-una din părți (de exemplu numai sus). Pentru a încadra o imagine într-o ramă folosiți tag-ul border.

Culoarea implicită a acesteia va fi cea a textului. Atunci când o imagine are un link pe ea, aceasta va apărea automat (de dimensiune 1 și de culoarea link-ului). Pentru a scăpa de ea, precizați în cadrul tag-ului img border="0". Atributele vspace, hspace și border se măsoară în pixeli.

Vă recomand ca atunci când aveți imagini pe o pagină web să folosiți întotdeauna atributele width și height, și anume cu dimensiunile exacte ale imaginii (în pixeli). Width precizează lățimea iar height înălțimea unei imagini. În primul rând, de ce este necesară utilizarea acestor tag-uri, deoarece - cu sau fără ele - rezultatul final este același. Atunci când un browser încarcă o pagină web, el va afișa mai întâi textul și va lăsa spațiu acolo unde urmează să apară imaginile. Dacă nu precizați dimensiunile imaginii, browser-ul nu va rezerva un spațiu exact pentru aceasta, iar după ce o încarcă, întreg conținutul paginii va fi repoziționat. Și aceasta se va întâmpla la fiecare imagine încărcată, ceea ce poate deveni neplăcut pentru vizitator. Bineînțeles acesta nu se va întâmpla în cazul unei conexiuni ultra-rapide, deoarece paginile vor fi încărcate instantaneu, însă nu toți vizitatorii dispun de astfel de conexiuni. În al doilea rând, dacă folosiți alte dimensiuni ale imaginii decât cele originale, browser-ul o va redimensiona. De exemplu, nu de puține ori am văzut pe web galerii de imagini în care se prezintă pe o pagină un index al acestora format din variante mici ale imaginilor respective. Cei care au construit paginile respective nu au mai avut timp pentru a realiza și aceste imagini de dimensiuni reduse, așa că au luat imaginile mari și le-au redimensionat din HTML, cu ajutorul lui width și height. Rezultatul este însă extrem de prost, nu numai din punct de vedere calitativ, dar și al timpului de încărcare. De reținut că imaginile pot avea și dimensiuni relative (width="50%").

De asemenea, utilizarea atributelor align="left" și align="right" pe imagini trebuie făcută cu atenție. Pe anumite browsere (mai ales Netscape 4) și pe anumite rezoluții sau dimensiuni ale ecranului, textul care înconjoară imaginea se va suprapune cu imaginea care îl însoțește, rezultatul fiind catastrofal. Aceasta nu ar trebui să se întâmple, dar programele de navigare - mai ales cele vechi - sunt pline de surprize neplăcute. Soluții ,,oficiale" la această problemă nu există. Astfel de erori, precum și numeroasele limite ale limbajului HTML, i-au determinat pe designerii web să apeleze la soluții neconvenționale. Toate paginile web sunt construite pe structuri tabelare. Aceasta înseamnă că întreg conținutul unei pagini web este introdus în tabele ale căror rame sunt setate pe zero (border="0") - în majoritatea cazurilor. Soluția este foarte bună, deoarece cu ajutorul tabelelor se poate controla strict poziționarea conținutului. De subliniat că nu constituie o problemă folosirea tabelelor intercalate, adică a tabelelor în tabele: orice celulă a unui tabel poate conține un alt tabel ș.a.m.d. Acest procedeu vă poate ajuta să plasați un element dintr-o pagină web exact acolo unde doriți. Trebuie avut însă în vedere că tabelele container pot fi redimensionate din cauza lățimii sau înălțimii imaginilor sau tabelelor pe care le include.

O Soluție? Tabelele
Utilizarea tabelelor presupune însă cunoașterea semnificației atributelor care pot însoți tag-ul table. Dimensiunea tabelelor poate fi relativă (width="80%") sau fixă (width="80"). Dimensiunile fixe se măsoară în pixeli. Dimensiunile relative se vor forma în funcție de container-ul părinte al tabelului. Astfel, dacă tabelul este cuprins doar de tag-ul body, el se va dimensiona relativ în funcție de mărimea ferestrei browser-ului. Dacă însă un tabel cu width="50%", este introdus într-o celulă a altui tabel atunci lățimea lui va fi jumătate din cea a celulei-container. Aceleași reguli sunt valabile și pentru înălțimea unui tabel (height). Alte atribute cu ajutorul cărora puteți controla poziționarea conținutului unui tabel sunt cellpadding și cellspacing. Cellpadding se referă la distanța dintre conținutul unei celule și marginile acesteia. Cellspacing precizează distanța dintre celulele unui tabel. Valoarea implicită a acestor atribute nu este zero.

Așadar, pentru a obține un tabel în care să nu existe spațiu între conținut, folosiți cellpadding="0" cellspacing="0". Atributele width și height pot fi poziționate atât pe table (tabel) cât și pe td (celulă). Atunci când utilizați lățimi pentru fiecare celulă în parte - ceea ce este recomandat în majoritatea cazurilor, pentru a avea un control mărit asupra acestora, aveți grijă ca suma with-urilor de pe td-uri să fie egală cu lățimea tabelului. În caz contrar, browser-ul va redimensiona celulele.

Colspan și rowspan sunt și ele foarte utile pentru a crea structuri mai complexe de tabele. Ele se folosesc pe tag-ul td și determină întinderea unei celule pe mai multe rânduri (rowspan) sau pe mai multe coloane (colspan).

Nu este indicată utilizarea de combinații de valori fixe și relative pe același tabel, deoarece pe anumite rezoluții browser-ul nu va mai afișa dimensiuni exacte. Construiți un tabel cu o lățime de 100% și 3 coloane astfel:

<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="200">fix 200</td>
<td width="73%"> 80%</td>
<td width="100">fix 100 </td>
</tr>
</table>

Redimensionați fereastra și schimbați rezoluția ecranului. Veți vedea ce se întâmplă...

Pentru a obține o pagină web pe 3 coloane, astfel încât prima și ultima să aibă lățimi fixe, iar cea din mijloc să se dimensioneze în funcție de lățimea browser-ului, vom proceda astfel: introducem un tabel cu dimensiuni relative, iar în prima și în ultima coloană introducem alte tabele formate dintr-o singură celulă cu dimensiuni fixe. Multe pagini web sunt construite astfel, în stânga fiind meniul de navigare, la mijloc conținutul iar la dreapta o margine. Nu lăsați conținutul să se întindă pe întreaga lățime a unei pagini, deoarece textul devine greu de urmărit.

Alinierea verticală și orizontală a conținutului unei celule este determinată de atributele valign și respectiv align. Aceste atribute pot fi specificate în tag-ul td sau tr. Atunci când atributul align se află pe tag-ul table, el va determina alinierea tabelului ca și în cazul imaginilor. Align poate avea valoarea left, right și center, iar valign - top, middle și bottom. Valoarea implicită pentru align este left iar pentru valign este middle. Iată cum va arăta următorul tabel într-un browser:

<table border="1">
<tr> <td height="61" valign="top">valign=top</td> </tr>
<tr> <td height="65" valign="middle">valign=middle</td> </tr>
<tr> <td height="80" valign="bottom">valign=bottom</td> </tr>
</table>

Cum procedăm când dorim să poziționăm conținutul în centrul ferestrei browser-ului, atât orizontal cât și vertical, indiferent de dimensiunile acesteia? Vom folosi un tabel format dintr-o singură celulă care acoperă întreaga fereastră:

<table width="100%" height="100%">
<tr>
<td align="center" valign="middle"> Text centrat vertical și orizontal </td>
</tr>
</table>

O astfel de pagină este întâlnită mai ales ca pagină de introducere într-un sit.

Ați observat desigur că browser-ele păstrează un spațiu între marginea ferestrei și conținut. Pentru a stabili dimensiunile acestui spațiu, folosiți următoarele atribute în tag-ul body:

leftmargin="x" topmargin="x" marginwidth="x" marginheight="x",

unde x reprezintă dimensiunea în pixeli a acestui spațiu. leftmargin și marginwidth se referă la spațiul orizontal iar topmargin și marginheight la cel vertical. Sunt necesare toate cele 4 atribute deoarece Internet Explorer și Netscape le interpretează în mod diferit.

O altă chestiune demnă de luat în seamă atunci când lucrăm cu tabele este faptul că un browser va afișa un tabel doar în momentul în care a citit și ultima celulă a acestuia. Astfel, paginile construite într-un singur tabel, vor fi afișate doar după ce s-au încărcat în întregime (cu excepția imaginilor). Pentru a nu lăsa vizitatorul să aștepte atâta timp până să vadă ceva pe ecranul său, vă recomand să folosiți mai multe tabele-container, pe verticală.

Acestea fiind spuse, nu vă rămâne decât să experimentați cu tabele de lățimi fixe și relative, intercalate sau nu. Studiați comportamentul acestora pe diferite rezoluții și dimensiuni ale ferestrei browser-ului. Cu puțină răbdare veți reuși să amplasați elementele incluse pe pagina dvs. web exact acolo unde doriți.

Nu am epuizat tehnicile puse la dispoziție de limbajul HTML pentru a controla mai bine poziționarea conținutului. Menționez aici Frame-urile sau Layer-ele, însă de acestea ne vom ocupa într-un număr viitor.

Nota redacției: Acest articol este primul dintr-o serie de contribuții românești. Nu ezitați de a-l citi critic, orice fel de completări și probleme puse de dumneavoastră vor fi binevenite.

 

Iată cum va arăta următorul tabel:

<table width="254" border="1">
<tr>
<td colspan="4">colspan=4</td>
</tr>
<tr>
<td rowspan="4" width="83">rowspan=4</td>
<td width="48">0</td>
<td width="44">0</td>
<td width="51">0</td>
</tr>
<tr>
<td width="48">0</td>
<td colspan="2">colspan=2</td>
</tr>
<tr>
<td width="48">0</td>
<td colspan="2">colspan=2</td>
</tr>
<tr>
<td width="48">0</td>
<td colspan="2">colspan=2</td>
</tr>
</table>



PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2002 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

Concurs de Grafica Digitala si Web Design

www.agora.ro

www.agora.ro