Frames

postat acum 2 ani de Stefanescu Mihai in categorie HTML

Frameurile HTML sunt folosite pentru a desparti fereastra browserului in mai multe sectiuni in care vei incara diverse documente HTML. O colectie de frame-uri intr-o fereastra se numeste frameset.

Dezavantaje frame-uri

Bineinteles ca exista si dezavantaje la folosirea de frameuri, de fapt as spune ca nu este recomandat sa folositi frameuri.

    • Unele dispozitive nu afiseaza frameurile corect (in unele cazuri nu le afiseaza deloc).
    • Paginile sunt afisate in mod diferite pe diverse computere.
    • Butonul Back al browserului s-ar putea sa nu functioneze in modul normal.

Exista browsere ce nu suporta frameuri.

Cum facem frameuri

Pentru a folosi frame-uri intr-o pagina trebuie sa folosim tag-ul <frameset> in loc de <body>. Acest tag defineste cum va fi divizata fereastra in frame-uri.

Atributul rows al tag-ului <frameset> defineste frame-urile orizontale, iar atributul cols defineste frame-urile verticale. Fiecare frame este indifcat de tag-ul <frame> in care este definit si documentul HTML afisat.

<!DOCTYPE html>
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset rows="10%,80%,10%">
   <frame name="top" src="top_frame.htm" />
   <frame name="main" src="main_frame.htm" />
   <frame name="bottom" src="bottom_frame.htm" />
   <noframes>
   <body>
      Browserul tau nu suporta Frameuri
   </body>
   </noframes>
</frameset>
</html>

Rezultatul:

In exemplul de mai sus le-am pus pe randuri (codul folosit rows=”10%, 80%, 10%”), acum hai sa le punem pe coloane.

<!DOCTYPE html>
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset cols="20%,60%,20%">
   <frame name="top" src="top_frame.htm" />
   <frame name="main" src="main_frame.htm" />
   <frame name="bottom" src="bottom_frame.htm" />
   <noframes>
   <body>
      Browserul tau nu suporta Frameuri
   </body>
   </noframes>
</frameset>
</html>

Rezultatul:


Atribute <frameset>

Iata o lista de atribute esentiale pentru tag-ul <frameset>:

Atribut Descriere
cols Specifica numarul de coloane din frameset. Se pot da valor in pixeli sau procente.
rows Acest atribut functioneaza exact ca si cols numai ca va creea randuri nu coloane. Piteti da valori in pixeli sau procente.
border Acest atribut specifica borderul fiecarui frame in pixeli (0 inseamna ca nu avem border).
frameborder Acest atribut specifica daca va exista un border tridimensional intre frameuri. Acesta are 2 valori 1 si 0 (1 avem border si 0 nu avem border).
framespacing Acest atribut specifica numarul de pixeli de spatiu dintre frameuri.

Atribute <frame>

Valoare Descriere
src Sursa fisierului html care va fi afista in frame
name Numele unui frame. Acest atribut este important in cazul in care doriti sa faceti link-urile dintr-un frame sa se deschida in altul.
frameborder Similar cu frameborder de la frameset.
marginwidth Acest atribut represinta spatiul dintre border si continutul frame-ului in stanga/dreapta. Valoare trebuie specificata in pixeli.
marginheight Similar cu marginwidth, numai ca aici setam distanta sus/jos.
noresize Acest tag se foloseste pentru a interzice redimensionarea unui frame. Exemplu folosire: noresize=”noresize”
scrolling Acest atribut specifica daca sunt permise scrollbar-urile in frameuri. Poate avea 2 valori, “yes” si “no”.

Compatibilitate Browsere

Daca un utilizator foloseste un browser mai vechi sau un browser ce nu suporta frameuri atunci ii va fi afisat elementul <noframes> .

Deci, trebuie sa pui si un element <body> in interiorul elementului <noframe> pentru ca in mod normal <body>ul este inlocuit de <frameset>.

In acest <body> puteti pune un mesaj pentru a va anunta utilizatorii ca browserul lor nu suporta frame-uri, de exemplu: “Din pacate browserul tau nu suporta frameuri“.Atributele name si target

Un lucru foarte popular la frameuri este posibilitate de a pune un meniu intr-un frame, iar pagina ce trebuie incarcata in alt frame.

Iata un exemplu simplu:

<!DOCTYPE html>
<html>
<head>
<title>Atributele name si target</title>
</head>
<frameset cols="200, *">
   <frame src="/meniul.htm" name="meniu" />
   <frame src="/index.htm" name="index" />
   <noframes>
   <body>
      Din pacate browserul tau nu suporta frameuri.
   </body>
   </noframes>
</frameset>
</html>

In codul de mai sus am facut o pagina cu 2 frameuri. Un frame pentru un meniu de 200px in care va fi incarcata pagina meniul.htm ce va contine un meniu, iar al doilea frame va contine continutul site-ului ce va incarca pagina index.htm. In toate link-urile din meniu am mentionat (in codul de mai jos) ca si target frame-ul index, deci cand apasam pe un link din meniu acesta se va incarca in frame-ul cu numele index.

Continut meniul.htm

<!DOCTYPE html>
<html>
<body bgcolor="#ccc">
<a href="http://invata-programare.ro/" target="index">Invata Programare</a>
<br /><br />
<a href="http://www.google.com" target="index">Google</a>
<br /><br />
<a href="http://imdb.com" target="index">IMDB</a>
</body>
</html>

Continut index.htm

<span class="dec">&lt;!DOCTYPE html&gt;</span>
<span class="tag">&lt;html&gt;</span>
<span class="tag">&lt;body</span> <span class="atn">bgcolor</span><span class="pun">=</span><span class="atv">"#efefef"</span><span class="tag">&gt;</span>
<span class="tag">&lt;h3&gt;Pagina Index</span><span class="pln">.</span><span class="tag">&lt;/h3&gt;</span>
<span class="tag">&lt;p&gt;</span><span class="pln">Apasa pe link-uri pentru rezultat.</span><span class="tag">&lt;/p&gt;</span>
<span class="tag">&lt;/body&gt;</span>
<span class="tag">&lt;/html&gt;</span>

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!