Spazio x la tua pubblicità





Powered by Intruso

I frames nel codice html


Se il sito è formato da diversi argomenti, presto si avvertirà la necessità di usare un menù, questo sia per agevolarne la navigazione che per dare subito l'idea di quali siano i contenuti trattati. Per fare questo si ricorre alla tecnica dei frames.

Frames o cornici. Si tratta di suddividere la finestra principale del browser in modo tale che nella stessa ci siano due o più finestre. Quante e come disporle dipende soltanto da noi, dal nostro progetto e dalla sua organizzazione. Non esistono limiti se non quelli del buon gusto e della praticità d'uso, che tradotta significa: semplicità di navigazione.

In molti casi sono sufficienti due sole cornici (frames), una laterale o superiore dove inserire il menù e l'altra la vera e propria finestra di navigazione, quella principale. Per dare meglio l'idea vediamo un paio di possibili esempi :



varie
voci
del
Menù
Finestra Principale

Con menù laterale, oppure:

varie voci del Menù
Finestra Principale

Con menù superiore.

Quale dei due adottare dipende solo da noi, da come si è deciso di organizzare il sito, in tutti i casi bisognerà creare una nuova pagina html che contenga al suo interno il codice per la struttura dei frames. Questa nuova pagina richiamarà all'interno di se stessa tutte le altre pagine ( in questo caso due) che si disporranno affiancate, verticalmente oppure orizzontalmente. Di solito questa pagina si chiama index.html, la pagina iniziale del sito, ma niente e nessuno vieta di fare in modo che una struttura a frames derivi invece da un link di una pagina qualsiasi del nostro sito, diversa da quella principale.

Per prima cosa si preparano le due pagine: menu.html e principale.html, potete adoperare qualsiasi altro nome, se lo fate l'importante è poi ricordarsi di cambiare i riferimenti laddove io ho adoperato questi miei.

A questo punto creiamo la pagina index.html, portatevi col cursore subito sotto il tag </head>, inserite il nuovo elemento (tag) che serve per dichiarare una struttura a frames :

<frameset>

L'elemento <FRAMESET> è uno di quei tags che da soli non dicono niente, necessita di almeno uno dei suoi due attributi: ROWS o COLS che servono rispettivamente per suddividere la finestra in righe o in colonne. Al suo interno può contenere annidati altri elementi, quali altri <FRAMESET> nel caso di suddivisioni multiple e complesse, oppure <FRAME> e/o <NOFRAME>.

Supponendo di dover dividere la finestra in modo verticale adopereremo:

<FRAMESET COLS="25%, 75%">
</frameset>


Assegnando in questo caso il 25% dello spazio al frame piccolo per il menù, ed il restante 75% alla finestra principale. Potremo adoperare anche valori fissi, espressi in pixel, nel caso in cui si debbano rispettare delle misure ben precise, senza mantenere le proporzioni dovute alla risoluzione video del visitatore.

Una volta stabilite nel frameset le dimensioni della suddivisione, si dovranno richiamare i due files preparati precedentemente e cioè : menu.html e principale.html in questo modo:

<frame name="menu" src="menu.html">
<frame name="principale" src="principale.html">


L'elemento o tag "frame" ha diversi attributi, più o meno utili e necessari, due sono indispensabili: name che identifica il nome del frame, in modo da poter visualizzare su quel frame un link proveniente da un frame diverso, e src (source) che invece richiama la pagina html vera e propria.

Dal momento che i frames preuppongono una divisione, dovremo decidere se la cornice divisoria deve essere visibile oppure no, se poi il contenuto del frame menù fosse piuttosto ricco di voci, dovremo prevedere anche un'eventuale barra di scorrimento verticale, tutti questi parametri sono opzionali e dipendono soltanto dalle nostre intenzioni. Per il momento quello che ci serve è una struttura di questo tipo:

<html>
<head>
<title>Struttura per frames</title>
</head>

<frameset cols="25%, 75%">

<frame name="menu" src="menu.html" scrolling="auto">
<frame name="principale" src="principale.html" scrolling="auto">

</frameset>

<body>
<noframes>
Spiacente, il tuo browser non supporta i frames.
</noframes>
</body> </html>


Notate che i tags che definiscono la struttura a frames non si trovano ne all'interno della zona <head> </head> ne all'interno della zona <body> </body>, sono gli unici che si comportano a questa maniera, ricordatevelo.

Salvate la pagina contenente il codice sopra col nome index.html. Da notare che non c'è alcun tag body e che il codice è stato scritto dopo la chiusura di head e non al suo interno, praticamente questo dei frames è l'unico codice che non viene inserito in nessuna delle due sezioni ( head o body) come spiegato all'inizio di questo corso.
Se avete salvato come index.html non resta che provare a vedere cosa succede: richiamate il file appena memorizzato dall'interno del browser, se avete preparato precedentemente i due files: menu.html e principale.html questi saranno visualizzati contemporaneamente, uno di fianco all'altro e nella stessa finestra. Ricordatevi i nomi che avete assegnato ai vostri frames, e per nomi intendo quelli specificati nell'attributo name, saranno questi nomi che se dichiarati all'interno dell'attributo target di un link, decideranno su quale dei due frames aprire il link stesso.

Difficile? Un esempio chiarirà sicuramente meglio.
Se avete deciso di avere due frames è molto probabile che uno di questi due debba fare funzioni da menù, i links di questo menù dovranno però aprire la pagina ad essi associata, nella finestra principale. Per fare si che questo avvenga si dovrà aggiungere al link stesso l'attributo target (bersaglio) specificando il nome del frame (target) sul quale aprire il link richiamato, quindi:

<A HREF="nomepagina.html" target="principale">

Questo link ha in più rispetto a quelli visti nella lezione sui links, l'attributo target che soltanto adesso ha ragione di esistere, dal momento che abbiamo una struttura con più di una finestra, possiamo infatti decidere su quale di queste due finestre aprire il link, per farlo basta semplicemente specificare il nome del frame nell'attributo target.

C'è anche la possibilità di aggiornare contemporaneamente due frames cliccando su un solo link, oppure aprire il link su una nuova finestra del browser. Lasciate da parte per il momento queste possibilità, è sufficiente sapere che esistono.


I frames


<FRAMESET>...</FRAMESET>

L'elemento <FRAMESET> è l'elemento principale, possiede due attributi quali ROWS e COLS. Al suo interno può contenere annidati altri elementi quali <FRAMESET>, <FRAME> o <NOFRAME>.

<FRAMESET>
attributi assegnabili:
ROWS
COLS
 

ROWS

L'attributo ROWS raccoglie i valori per l'altezza della riga, quando si suddivide la finestra principale in righe. Questi valori devono essere separati da virgole e possono essere espressi sia in numeri interi che in numeri percentuale; nel primo caso equivalgono al numero di pixel, mentre nel secondo caso sono in percentuale delle dimensioni della finestra del browser.

<FRAMESET ROWS="30%, 70%">

L'esempio sopra crea una cornice suddividendo orizzontalmente la finestra in due parti, la prima che occupa il 30% delle dimensioni totali lasciando il rimanente 70% alla seconda finestra. Si possono adoperare anche valori numerici, senza il simbolo di % percentuale, in questo caso si fa riferimento al numero di pixel dello schermo. Queste dimensioni restano fisse indipendentemente dalle dimensioni della finestra del browser, vediamo un esempio:

<FRAMESET ROWS="150, 600">

In questo caso si avrebbero due finestre con dimensioni fisse (150 e 600 px) indipendentemente dalla risoluzione e dalle dimensioni del monitor, grandi o piccoli che siano. Per evitare questa limitazione, si possono adoperare i caratteri jolly (asterisco *) che significano imposta la massima dimensione rimanente. (vedi esempio sotto)

<FRAMESET ROWS="150, *">

Così facendo si otterrà un frame orizzontale di dimensione fissa di 150 pixel lasciando per il secondo frame tutto lo spazio rimanente, qualsiasi esso sia, è ovvio che dipende soltanto dl monitor e dalla risoluzione grafica adoperata dal visitatore. L'esempio pratico sotto è al solo scopo di rendere l'idea di come avviene la suddivisione.

Frame superiore fisso 150 pixel
Frame inferiore
che varia occupando il rimanente spazio della finestra
 

COLS

L'attributo COLS raccoglie i valori per la larghezza della colonna, quando si suddivide la finestra principale in colonne. Questi valori devono essere separati da virgole e possono essere espressi sia in numeri interi che in numeri percentuale; nel primo caso equivalgono al numero di pixel, mentre nel secondo caso sono in percentuale delle dimensioni della finestra del browser. Praticamente valgono le stesse regole spiegate sopra, ma anzichè suddividere lo schermo in righe, lo si suddivide in colonne.

<FRAMESET COLS="25%, 75%">

L'esempio sopra crea una cornice suddividendo verticalmente la finestra in due parti, la prima che occupa il 25% delle dimensioni totali lasciando il rimanente 75% alla seconda finestra. Si possono adoperare anche valori numerici, senza il simbolo di % percentuale, in questo caso si fa riferimento al numero di pixel dello schermo. Queste dimensioni restano fisse indipendentemente dalle dimensioni della finestra del browser, vediamo un esempio:

<FRAMESET COLS="150, 600">

In questo caso si avrebbero due finestre con dimensioni fisse (150 e 600 px) indipendentemente dalla risoluzione e dalle dimensioni del monitor, grandi o piccoli che siano. Per evitare questa limitazione, si possono adoperare i caratteri jolly (asterisco *) che significano imposta la massima dimensione rimanente. (vedi esempio sotto)

<FRAMESET COLS="150, *">

Così facendo si otterrà un frame verticale di dimensione fissa 150 pixel lasciando per il secondo frame tutto lo spazio rimanente, qualsiasi esso sia, è ovvio che dipende soltanto dl monitor e dalla risoluzione grafica adoperata dal visitatore. L'esempio pratico sotto è al solo scopo di rendere l'idea di come avviene la suddivisione.

Frame laterale sinistro fisso 150 pixelFrame laterale destro che varia occupando il rimanente spazio della finestra


 

<FRAME>

L'elemento FRAME definisce le proprietà del frame stesso all'interno di FRAMESET, esso ha ben 8 attributi, non necessita del relativo tag di chiusura /FRAME . Questi gli attributi possibili:

<FRAME>
attributi assegnabili all'elemento FRAME:
SRC
NAME
MARGINWIDTH
MARGINHEIGHT
SCROLLING
NORESIZE
FRAMEBORDER
FRAMESPACING
 

SRC="url"

L'attributo SRC="url" definisce l'indirizzo del file html che verrà visualizzato nella sezione frame nel frameset. Potrebbe sembrare complicato ma altro non è che il file html da visualizzare.

<FRAME SRC="nome_file.html">
 

NAME="nome_frame"

L'attributo NAME è di vitale importanza ai fini di un corretto funzionamento, serve infatti per assegnare un nome al frame stesso facendolo diventare bersaglio di collegamenti da altri frames o semplici links tramite l'attributo TARGET. A questo proposito si veda anche la sezione dedicata proprio ai links e loro gestione. Non confondete il nome che avete scelto per il file html con il nome da assegnare al frame, questi potrebbero essere due nomi completamente diversi. Se tutto ciò può sembrare complesso, a fine pagina un esempio riassuntivo chiarirà sicuramente meglio ogni cosa.

<FRAME NAME="TITOLO">
 

MARGINWIDTH="valore"

L'attributo MARGINWIDTH accetta valori numerici che corrispondono a pixel, forza il rientro sui lati, destro e sinistro, in base a tale valore. Non può essere impostato a zero.

<FRAME MARGINWIDTH="valore">
 

MARGINHEIGHT="valore"

L'attributo MARGINHEIGHT accetta valori numerici che corrispondono a pixel, forza il rientro sui lati, superiore e inferiore, in base a tale valore. Non può essere impostato a zero.

<FRAME MARGINHEIGHT="valore">
 

SCROLLING="yes|no|auto"

L'attributo SCROLLING serve per il controllo della barra laterale di scorrimento, quando il contenuto della pagina supera le dimensioni del frame viene visualizzata una barra di scorrimento. yes= si alla visualizzazione di questa barra, no= nessuna barra, auto= solo se il contenuto del frame la richiede.

<FRAME SCROLLING="auto">
 

NORESIZE

L'attributo NORESIZE non ha alcun parametro, se impostato evita al frame di essere ridimensionato. Diversamente saràì possibile, portando il puntatore del mouse nella divisione dei due frames, ottenere una doppia freccia di posizionamento.

<FRAME NORESIZE>
 

FRAMEBORDER="yes|no"

L'attributo FRAMEBORDER, riconosciuto dai soli browser IE, serve per rendere visibili o meno i bordi dei frames, per default si trova a YES quindi impostare no soltanto nel caso in cui non si voglia ridisegnare il bordo.

<FRAME FRAMEBORDER="no">
 

FRAMESPACING="valore"

L'attributo FRAMESPACING, riconosciuto dai soli browser IE, serve per impostare spazio aggiuntivo intorno ai frames facendoli sembrare "flottanti", il valore impostabile si riferisce al numero di pixel.

<FRAME FRAMESPACING="valore">


 

<NOFRAMES>...</NOFRAMES>

L'elemento NOFRAMES serve per creare un alternativa a quei browser che non supportano i frames. Come detto all'inizio di questo documento, non tutti i browser supportano la gestione dei frames, conviene creare un'alternativa o semplicemente un messaggio di avviso fra i tags <NOFRAMES>...</NOFRAMES>

<NOFRAMES>
Spiacente ma il tuo browser non supporta i frames, clicca su questo link per continuare
</NOFRAMES>


 

ESEMPIO

Forse un esempio pratico potrebbe chiarire ogni dubbio, diciamo subito che la struttura di un sito a frames si basa su almeno 3 pagine web:
Una per dichiararne la struttura.
Le altre due rispettivamente per i due frames.
Ipotizziamo di voler creare un sito simile a questo con un frame laterale per il menu, uno centrale principale per la navigazione, ed uno fisso in alto per eventuali sponsor, musica, informazioni varie.

Inizieremo col creare le tre pagine menu.html, home.html e sponsor.html io le ho chiamate così ma qualsiasi altro nome non cambierebbe assolutamente nulla.

Fatto questo non resta che creare la pagina per i frames che chiameremo index.html Per questa pagina valgono le stesse regole di tutte le altre pagine html, quindi avrà i tags di base quali html, body, head, title, meta e tutti gli altri eventuali.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Web-Link.it Tutto per la tua pagina web </title>
</head>

       
<FRAMESET COLS="20%,80%">

         <FRAME NAME="menu" SRC="menu.html" SCROLLING="auto">

     <FRAMESET ROWS="15%,85%">

          <FRAME NAME="sponsor" SRC="sponsor.html" SCROLLING="auto">
          <FRAME NAME="homepage" SRC="home.html" SCROLLING="auto">

     </FRAMESET>
</FRAMESET>

<body>

<NOFRAMES>
Spiacente il tuo browser non supporta i frames
</NOFRAMES>

</body>
</html>

Il listato sopra produrrà un risultato simile a questo sotto, si noti la struttura nidificata del frameset che crea a sua volta due finestre dalle due precedentemente impostate.

Frame menuFrame Sponsor
Frame Home Page

Torna all'inizio della pagina | Stampa la pagina

© 2001-2002 - Grafica, layout e guide sono di esclusiva proprietà della Alby'84 Corporation   |   Sito Personalizzato