zromano 3 January 2001 16:14 INTRODUZIONE
I
frame ("cornici") possono dividere lo schermo in finestre separate.


O gnuna di queste finestre può contenere un documento in HTML.

U n file che specifica il modo in cui lo schermo è diviso si chiama frameset.

S e vuoi creare una pagina con dei frame, ecco cosa devi fare:
·        
creare un documento HTML con il frameset
·         creare i normali documenti HTML che dovranno essere contenuti in ognuno di questi frame.
Q uando una pagina frameset viene scaricata, il browser automaticamente scarica ognuna delle pagine associate ai frame.


ESEMPIO BASE

U n frameset è in poche parole un documento HTML che dice al browser come dividere lo schermo in finestre separate.


E cco l'HTML per il frameset qui sopra::
<html>
<head>
<title>La Mia Pagina Frame</title>
</head>

<frameset cols="120,*">
<frame src="menupage.htm" name="menu">
<frameset rows="*,50">
<frame src="welcomepage.htm" name="main">
<frame src="bottombanner.htm" name="bottom">
</frameset>
</frameset>

</html>



H ai notato? Il frameset è di sole sette righe!

D ividiamolo e osserviamo le righe una ad una...

LA CREAZIONE DI UN FRAMESET
C
ome abbiamo detto nella pagina precedente, un frameset è semplicemente un documento HTML che indica al browser come dividere lo schermo in finestre separate.

S e il frameset fosse così:


I l suo codice sarebbe:
<frameset cols="120,*">
</frameset>


L o schermo è diviso in due colonne.
Quella a sinistra è di 120 pixel e quella di destra occupa il resto dello schermo (indicato con *).

S e le finestre non avessero un nome, sarebbe impossibile usare il frameset.

A ndiamo avanti e impariamo ad aggiungere nomi e pagine default alle finestre frame.

PAGINE DI DEFAULT
P uoi aggiungere pagine default alle finestre frame con l'attributo src .

L e pagine default sono le pagine che verrano scaricate quando il frameset verrà aperto per la prima volta.

P ossiamo ulteriormente aggiungere nomi ad ognuna delle finestre frame adoperando l'attributo name .

Q uesto ci permetterà di creare un link in una finestra frame, aprire una pagina in un'altra finestra frame.

I n questo esempio abbiamo aggiunto nomi e pagine default alle finestre frame:
<frameset cols="120,*" >
<frame src="menu.htm" name="menu" >
<frame src="frontf.htm" name="principale" >

</frameset>


E cco come apparirà l'intero frameset:
m
e
n
u

principale


A bbiamo ancora diviso lo schermo in due colonne, quella di sinistra misura 120 pixel, mentre quella di destra occupa il resto dello schermo. (Alcuni schermi misurano in larghezza 640 pixel, altri 800 e alcuni fino a 1024, ecco perché c'è bisogno del *).

M a stavolta abbiamo anche detto al browser che la finestra frame di sinistra deve contenere una pagina HTML chiamata menu.htm e che la colonna a destra deve contenere un documento HTML chiamato frontf.htm .

I n più abbiamo assegnato i nomi "menu" e "principale" alle due finestre frame, così adesso siamo anche in grado di creare link per finestre specifiche.

A bbiamo chiamato i frame menu e principale , ma sarebbe stato possibile dargli qualsiasi altro nome.

I l tipo di impaginazione con una finestra di menù a sinistra e una finestra principale a destra è il frameset più comune che si può incontrare sulla rete.

C i sono alcuni altri attributi che potremmo aggiungere al frameset.

P er esempio potresti voler rendere invisibili i bordi della cornice.


BORDI
P
er rendere invisibili i bordi devi semplicemente aggiungere i parametri "cols-line" al frameset :
<frameset cols="120,*" frameborder="0" border="0" framespacing="0" >
<frame src="menu.htm" name="menu" >
<frame src="frontf.htm" name="principale" >
</frameset>


O ra l'intero frameset apparirà così:
m
e
n
u


principale




P ossiamo aggiungere ulteriori parametri al nostro frameset...

FINESTRE RIDIMENSIONABILI
S
e vuoi che la grandezza delle finestre non sia modificabile, devi soltanto aggiungere il parametro "noresize" al frame src lines:
<frameset cols="120,*" frameborder="0" border="0" framespacing="0">
<frame src="menu.htm" name="menu"
noresize >
<frame src="frontf.htm" name="principale"
noresize >
</frameset>

BARRE DI SCORRIMENTO
P
oniamo che tu non voglia lo scroll bar (la barra - cursore di scorrimento pagina) nella finestra del menu.

I noltre la finestra principale dovrebbe avere la barra di scorrimento solo quando ciò fosse necessario (se il documento HTML non entrasse tutto nella finestra), ma se non ce ne fosse bisogno - non dovrebbero esserci barre di scorrimento.

I l codice allora sarebbe questo:
<frameset cols="120,*" frameborder="0" border="0" framespacing="0">
<frame src="menu.htm" name="menu" noresize
scrolling=no >
<frame src="frontf.htm" name="principale" noresize
scrolling=auto >
</frameset>


T ralasciando di specificare l'attributo per lo scorrimento della pagina, la barra apparirà soltanto in caso di necessità - altrimenti no.

LINKS ALL'INTERNO
S
e hai un documento HTML con un link sul testo "Analisi" per esempio, che porta a una pagina chiamata "analisi.htm", questo apparirà nel documento come:
Vai all' <a href="analisi.htm">Analysis</a> del progetto


O ra, se il link fosse nella finestra del menu del nostro esempio, e volessimo che questo caricasse una pagina nella finestra principale, il codice HTML sarebbe:
Vai all' <a href="analisi.htm" target="principale" >Analisi</a> del progetto


A bbiamo semplicemente aggiunto il parametro target="principale" al tag <a href> .

O ra il link si aprirà sulla finestra frame principale invece che su quella del menù, dove si trova il link stesso.

Q uattro nomi di target sono riservati, e il browser li interpreterà in questo modo:
·        
_blank scarica la pagina in una nuova finestra browser
·        
_self scarica la pagina nella finestra corrente.
·        
_parent scarica la pagina nel frame superiore a quello in cui si trova l'hyperlink .
·        
_top cancella tutti i frames, scarica la finestra browser al completo.




L eggendo le pagine di questa sezione, imparerai tutto quello che c'è da sapere sui frameset in HTML.

E ' possibile perfezionare il controllo dei tuoi frameset con javascript . Per esempio, javascript può impedire alle pagine progettate per funzionare solo all'interno di frameset, di venire scaricate fuori dal frameset.


ESEMPI
I
n questa pagina puoi vedere alcuni esempi di diversi frameset:
top
bottom

<frameset rows="16%,84%">
<frame src="top.htm" name="top">
<frame src="bottom.htm" name="bottom">
</frameset>




tl tr
bottom

<frameset rows="16%,84%">
<frameset cols="50%,50%">
<frame src="tl.htm" name="tl">
<frame src="tr.htm" name="tr">
</frameset>
<frame src="bottom.htm" name="bottom">
</frameset>




top

left

right

<frameset rows="16%,84%">
<frame src="top.htm" name="top">
<frameset cols="50%,50%">
<frame src="left.htm" name="left">
<frame src="right.htm" name="right">
</frameset>
</frameset>




topleft topright

botleft

botright


<frameset rows="50%,50%" cols="50%,50%">
<frame src="topleft.htm" name="topleft">
<frame src="topright.htm" name="topright">
<frame src="botleft.htm" name="botleft">
<frame src="botright.htm" name="botright">
</frameset>




topleft topright

botleft
brtl brtr
botrbot

<frameset rows="50%,50%" cols="50%,50%">
<frame src="topleft.htm" name="topleft">
<frame src="topright.htm" name="topright">
<frame src="botleft.htm" name="botleft">
<frameset rows="50%,50%">
<frameset cols="50%,50%">
<frame src="brtl.htm" name="brtl">
<frame src="brtr.htm" name="brtr">
</frameset>
<frame src="botrbot.htm" name="botrbot">
</frameset>
</frameset>




topleft topright

botleft

botright

<frameset rows="240,240" cols="320,320">
<frame src="topleft.htm" name="topleft">
<frame src="topright.htm" name="topright">
<frame src="botleft.htm" name="botleft">
<frame src="botright.htm" name="botright">
</frameset>




topleft topright

botleft

botright

<frameset rows="50%,*" cols="320,*">
<frame src="topleft.htm" name="topleft">
<frame src="topright.htm" name="topright">
<frame src="botleft.htm" name="botleft">
<frame src="botright.htm" name="botright">
</frameset>