HTML » Capire i frame
Quello a frame è un metodo alternativo di strutturare le pagine HTML, con il quale si va a suddividere la finestra del browser in più riquadri indipendenti tra loro. Tale struttura viene a prendere il nome di frameset ed è costituita non più da un’unica pagina, ma da più pagine HTML ognuna nel rispettivo riquadro.
L’utilizzo dei frame è spesso utilizzato per la costruzione di sofisticate interfacce di navigazione, in cui parti della finestra rimangono fisse e conterranno il più delle volte un menu, il logo e altre componenti comuni del sito, mentre i contenuti vengono ogni volta ricaricati o aggiornati nel frame principale. Il tutto si traduce in un notevole risparmio in termini di velocità di navigazione e in sede di realizzazione.
Svantaggi
Esistono sostanzialmente due rovesci della medaglia. Uno di ordine funzionale: non tutti i browser, soprattutto quelli testuali, sono in grado di gestirli correttamente e, anche se lo fanno, spesso non supportano alla stessa maniera i parametri dei tag <frame> e <frameset>.
Un altro svantaggio riguarda il modo in cui i motori di ricerca trattano i siti che utilizzano i frame. Spesso infatti si corre il rischio di far sparire letteralmente le proprie pagine dal motore di ricerca o penalizzarne fortemente il posizionamento e quindi la visibilità in rete.
Realizzare un frameset
Dobbiamo senz’altro partire dalla pagina che farà da contenitore, all’interno della quale stabiliremo la struttura del nostro sito. Per disporre i frame nella finestra, al posto del tag <body> si utilizza
il tag <frameset>con cui andremo a specificare come andranno dimensionati e posizionati i frame.
Vediamo con un semplice esempio come suddividere una pagina a metà in due riquadri orizzontali di uguale altezza:
<frameset rows="50%,50%"> <frame name="superiore" src="sopra.html"> <frame name="inferiore" src="sotto.html"> </frameset>
Semplice no? Con l’attributo rows determiniamo il numero di frame e la loro dimensione (in percentuale, in pixel o digitando un * per dichiarare tutta la parte rimanente). Elencando 2 valori abbiamo ottenuto 2 frame.
I tag <frame> che indicano quale contenuto avrà ognuno dei frame dovranno essere collocati all’interno dei tag frameset nell’ordine in cui saranno caricati dal browser, cioè dall’alto al basso e da sinistra a destra. Avremo così un contenitore che ospita due pagine distinte e indipendenti denominate superiore e inferiore grazie agli attributi name che abbiamo usato.
A questo punto non ci resta che dare un nome alla pagina principale e crearne altre due che si chiamano sopra.html e sotto.html. Caricando la pagina principale vedremo il contenuto di sopra.html nella parte superiore e di sotto.htmlin quella inferiore.
Voglio di più!
Spingiamoci oltre, visto che due frame appoggiati uno sull'altro forse ci servono a poco... Supponiamo invece di voler strutturare la nostra pagina disponendo un frame orizzontale fisso nella parte superiore di 120 pixel per il logo e l’intestazione del sito, uno in basso per mostrare un messaggio di copyright, un altro verticale per il menu a sinistra e la parte rimanente a disposizione del contenuto.
Per realizzare questa struttura a 4 frame dovremo annidare più tag <frameset> e andare per suddivisioni successive. Nel nostro caso la pagina principale potrà essere così strutturata:
<frameset rows="120,*,60"> <frame name="logo+titolo" src="titolo.html"> <frameset cols="90,*"> <frame name="menu" src="menu.html"> <frame name="contenuti" src="home.html"> </frameset> <frame name="footer" src="copyright.html"> </frameset>
Un consiglio per concludere: disegnate prima su carta la struttura, date un nome a ogni frame, stimatene le dimensioni in base al contenuto e alla funzione che dovranno avere; guadagnerete molto più tempo in seguito...
Per un riferimento completo degli attributi supportati andate alla fonte: i testi sacri del W3C.

