I Frames

Con la parola "Frames" viene indicato un particolare modo di visualizzazione delle pagine HTML. In pratica viene creato un documento cornice che contiene delle istruzioni per fare si che la finestra del browser venga suddivisa in più aree, ciascuna delle quali richiama un documento differente.
Questo permette la visualizzazione di documenti molto complessi, e, tramite un sistema di link, permette di cambiare il documento visualizzato in una determinata area dello schermo mantenedo fissi gli altri.

Il frameset

La struttura del documento che costituisce la cornice è basata sul tag <frameset>, che ha un corrispondente tag di chiusura e che al suo interno ammette solo altri elementi <frameset>, oppure <frame> o <noframe>.
Gli attributi dell'elemento <frameset> sono:
ROWS lista dei valori di altezza delle linee Deve essere creata una lista di valori, separati da virgole. Questi valori possono essere espressi sia in pixel sia in percentuale della finestra del browser, avendo cura che il totale non superi il 100%.
È raccomandabile non dare una lista valori completa, ma di lasciare almeno uno del valori libero di fluttuare attribuendogli il sombolo *, in modo da facilitare l'adattabilità del frameset alle varie risoluzioni di schermo, in pratica si dice al browser che quel particolare frame ha una dimesione realtiva e che deve essere visualizzato secondo la disponibilità di spazio.
Esempio:
<FRAMESET ROWS="20%, 100, *"> dividerà la finestra del browser in tre aree verticali, delle quali una utilizzerà il 20% della finestra dipsonibile, la seconda 100 pixel e la terza tutto lo spazio rimanente.
COLS lista dei valori di larghezza delle colonne Deve essere creata una lista di valori, separati da virgole, esattamente come per l'attributo ROWS.
BORDER valore in pixel Questo attributo è esclusivo di Netscape, e origina un bordo attorno ai vari frames dello spessore desiderato, a questo attributo è possibile associare il colore (attributo BORDERCOLOR, tenendo però presente che qualsiasi definizione di colore del bordo usata come attributo del tag <frame> sostituirà quanto indicato come valore per questo attributo.
FRAMEBORDER yes|no|0 Questo attributo è permette di creare un bordo grigio attorno ai frames, le dimensioni del quale sono definite dall'attributo FRAMESPACING

L'elemento <frame>

Questo elemento definisce ciascuna singola area in un frameset. I suoi possibili attributi sono:
SRC indirizzo Viene utilizzato per indicare il documento che deve essere mostrato nella particolare sezione del frameset
NAME nome_utente Viene utilizzato per assegnare un nome al frame, in modo che il documento richiamato possa essere correttamente indirizzato mediante l'attributo TARGET, secondo la sintassi
<A HREF="indirizzo" TARGET="nome_utente">
Nel capitolo riservato ai tag e alla definizione dell'attributo TARGET sono indicati dei nomi di frames che sono riservati, e che iniziano con il carattere "underscore" (_).
MARGINWIDTH valore Il valore deve essere indicato in pixel e crea un rientro forzato rispetto ai margini sinistre e destro del frame. Di default il browser crea il proprio rientro ai fini di ottimizzare la visualizzazione.
MARGINHEIGHT valore Come il precedente, ma controlla la distanza con la cima e col fondo.
SCROLLING yes|no|auto Questo attributo viene usato per controllare l'aspetto delle barre di scorrimento nel caso che il contenuto dei frame occupi un'are maggiore di quella disponibile per la visualizzazione. L'utilizzo del valore "no" è assolutamente sconsigliabile, perché l'autore del documeno non può in nessun casono conoscere a priori la risoluzione alla quale verrà visualizzato il suo lavoro.
NORESIZE  yes|no|auto Di default, qualsiasi finestra del frameset può essere ridimensionata dal visualizzatore, l'utilizzo di questo attributo non permette questa possibilità.

L'elemento <noframes>

Questo elemento viene utilizzato dagli autori che vogliono creare un contenuto alternativo per i browser di basso livello che non possono mostrare i frames, ed è specialmente utile nel primo documento che compone un sito realizzato col sistema dei frames. D'altra parte è interessante osservare che i browser di basso livello non riconoscono questo elemento, così come non riconoscono l'elemento <frameset>.
La visualizzazione avviene in questo modo:
i browser di ultima generazione leggono in ordine gerarchico per primo l'elemento <frameset>, leggendo l'elemento <noframes> solo se i frames sono stati disabilitati; i broser di basso livello ignorano i precedenti elementi, ma leggono il normale HTML contenuto all'interno dell'elemento <noframes>, e fornendone quindi una visualizzazione.

Alcuni esempi di frames

<frameset rows="*" cols="20%,*" framespacing="0" frameborder="0">
<frame src="documento1.htm" name="leftFrame" frameborder="0" scrolling="Auto">
<frame src="documento2.htm" name="mainFrame" scrolling="Auto">
</frameset>

Questa sintassi genera la divisione della finestra del browser in due aree verticali, delle quali una (quella di sinistra) occupa il 20% dello spazio disponibile, e l'altra il rimanente, come si può vedere esaminando l'esempio 1.

<frameset rows="*" cols="*,20%" framespacing="0" frameborder="0">
<frame src="dcumento1.htm" name="mainFrame" scrolling="Auto">
<frame src="documento2.htm" name="rightFrame" frameborder="0" scrolling="Auto">
</frameset>

Questa sintassi si comporta esattamente come la precedente, con la differenza che l'area fissa che occupa il 20% dello schermo si trova a destra (esempio 2).

<frameset rows="20%,*" cols="*" framespacing="0" frameborder="0">
<frame src="documento1.htm" name="topFrame" frameborder="0" scrolling="Auto">
<frame src="dpcumento2.htm" name="mainFrame" frameborder="0" scrolling="Auto">
</frameset>

In questo caso la finestra del browser viene divisa in due aree orizzongtali, delle quali la superiore occuperà il 20% dello spazio disponibile, e l'altra il rimanente, come si può vedere richiamando l'esempio 3.

<frameset rows="*,20%" framespacing="0" frameborder="0">
<frame src="documento1.htm" name="mainFrame" frameborder="0" scrolling="Auto">
<frame src="documento2.htm" name="bottomFrame" frameborder="0" scrolling="Auto">
</frameset>

L'esempio 4 si comporta esattamente come il precedente, ma l'area con la dimensione definita si trova nella parte bassa della finestra del browser.

<frameset rows="20%,*" cols="20%,*" framespacing="0" frameborder="0"<
<frame src="documento1.htm" name="cornerFrame" frameborder="0" scrolling="Auto">
<frame src="documento2.html" name="topFrame" frameborder="0" scrolling="Auto">
<frame src="documento3.htm" name="leftFrame" frameborder="0" scrolling="Auto">
<frame src="documento4.htm" name="mainFrame" frameborder="0" scrolling="Auto">
</frameset>

Questo esempio è più complesso, in quanto divide la finestra del browser in 4 aree, due verticali e due orizzontali, nelle quali possono essere visualizzti 4 documenti differenti (esempio 5).

<frameset rows="*" cols="20%,*" framespacing="0" frameborder="0">
<frame src="bordo1.htm" name="leftFrame" frameborder="0" scrolling="Auto">
<frameset rows="20%,*" framespacing="0" frameborder="0">
<frame src="alto.html" name="topFrame" frameborder="0" scrolling="Auto">
<frame src="spazio1.htm" name="mainFrame" frameborder="0" scrolling="Auto">
</frameset>
</frameset>

L'esempio 6 mostra come è possibile utilizzare un elemento <frameset> dentro un altro per creare una divisione della finestra del browser in tre aree di visualizzazione, delle quali una orizzonatale e due verticali.

torna all'homepage