Laboratorio di Applicazioni Informatiche II mod. A
HTML - I Frame
1
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
I frame (o riquadri) sono strumenti entrati da tempo nella
consuetudine del Web, e gestiti perfettamente da tutti i browser.
Essi consentono di visualizzare più di un documento HTML nella
stessa finestra del browser.
Ogni documento visualizzato è chiamato frame, e ciascuno di essi è
indipendente dagli altri.
I frame sono utili in quanto evitano di caricare le stesse immagini, e
mantengono ordinata la struttura e i contenuti di un sito.
Per contro lo sviluppatore deve tenere traccia di più documenti
HTML, ed può risultare difficile stampare l’intera pagina.
Ecco un esempio familiare:
2
3
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame (riquadri)
Naturalmente abusare dei frame può portare a risultati di pessima
resa grafica, giungendo a un risultato opposto a quello
preventivato.
Un punto certamente a sfavore dei frame è la loro incompatibilità
con i programmi di navigazione per i non vedenti, che davanti a
tali strumenti si bloccano, non permettendo la lettura delle
pagine.
Una buona soluzione è quella di creare una versione con frame e
una senza frame.
Vediamo i comandi HTML per la gestione dei frame.
4
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
I tag che implementano i frame sono:
<frameset>
<frame>
<noframes>
Il tag <frameset> definisce come dividere la finestra in più frame,
impostando un gruppo di righe o di colonne.
Esso sostituisce il tag <body>, e viene chiuso dal tag
</frameset>.
Ad esempio, la suddivisione della pagina Web precedente si può
ottenere con un tag del tipo:
<frameset cols="25%,75%">
I valori delle colonne (o delle righe) indicano la quantità di area di
schermo che sarà occupata da ciascuna colonna o riga.
L’esempio precedente imposta un frame con due colonne, la prima al
25% della larghezza della finestra del browser, la seconda al 75%.
5
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Quest’altro esempio imposta un frame con tre righe, la prima al 25%,
la seconda al 50%, la terza al 25% dell’altezza della finestra
<frameset rows=“25%,50%,25%”>
Vi sono altri modi per indicare la larghezza delle colonne o l’altezza
delle righe. In particolare:
un numero rappresenta la larghezza della colonna o l’altezza della
riga in pixel;
un asterisco (*) indica che la colonna o la riga si estendono in tutto
lo spazio rimanente.
6
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Altri attributi di <frameset> sono:
frameborder - framespacing (o border) - bordercolor
•frameborder determina se vi saranno bordi tridimensionali tra i
frame (se ha valore “yes” oppure “1”), o se non vi saranno (se ha
valore no o 0). Il valore di default è “yes”.
•framespacing (o border) determina quanto spazio viene
lasciato tra i frame, ossia lo spessore dei bordi. Per impostare frame
senza bordi, si scriverà quindi:
<frameset framespacing=“no”>
oppure
<frameset border=“no”>
•bordercolor: accetta come valore il colore del bordo. Esempio:
<frameset bordercolor=“#FF0000”>
7
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Dopo avere diviso la pagina in due o più frame, è necessario
“riempire” ciascuno di essi con un file avente per estensione
.html.
Ciascuno di tali file viene richiamato, all’interno del file principale,
da un tag <frame> (privo del tag di chiusura).
Il tag <frame> definisce, attraverso l’argomento src, quale
documento .html sarà inserito in ciascun frameset.
Il seguente esempio inserisce il documento frame_a.html nella
prima colonna, e il documento frame_b.html nella seconda di un
frameset definito in precedenza:
<frame src="frame_a.html">
<frame src="frame_b.html">
8
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Un file con frame ridotto al minimo potrebbe essere il seguente:
<html>
<head></head>
<frameset cols="25%,75%">
<frame src="frame_a.html">
<frame src="frame_b.html">
</frameset>
</html>
Come si vede, il codice del frame è racchiuso tra i tag <frameset>
e </frameset>, che si comportano come gli usuali tag <body> e
</body>.
Questo file richiede, naturalmente, che insieme a esso siano presenti
nella stesa cartella i file frame_a.html e frame_b.html.
9
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
L’elemento <frame> accetta i seguenti attributi (opzionali):
 scrolling: accetta uno dei valori
yes (inserisce comunque una barra di scorrimento);
no
(non fa inserire una barra di scorrimento);
auto (fa inserire una barra di scorrimento se necessaria).
 noresize (senza alcun valore) impedisce che un client possa
ridimensionare un frame.
10
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
 name: serve per assegnare un nome al frame. Esempio:
<frame src="frame_a.html" name=“Primo frame”>
In tal modo il frame può essere indicato come il punto di arrivo di un
link presente in un altro documento, e avente la forma:
<a href=“www.w3.org/pub” target=“Primo frame”>
 marginwidth: accetta un valore assoluto in pixel e forza il
corrispondente rientro dei margini sinistro e destro. Esempio:
<frame src="frame_a.html“ marginwidth=“40”>
 marginheight: è simile a marginwidth, ma controlla i
margini superiore e inferiore.
11
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Per creare un contenuto alternativo per i browser che non siano in
grado di visualizzare i frame, si usa l’elemento <noframes>.
Infatti questi browser ignorano gli elementi <frameset> e
<frame>, ma visualizzano qualsiasi elemento sia racchiuso tra
gli elementi <noframes> e </noframes>.
Un utilizzo di <noframes> è indicato nell’esempio seguente:
<noframes>
<body>
Questo documento richiede un browser in grado
di rappresentare i frame.
</body>
</noframes>
12
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Vediamo come si deve impostare il codice HTML del documento a
seconda del numero e della posizione dei frame che si intendono
creare.
Supponiamo di volere creare una finestra divisa in due frame
orizzontali (righe) come da figura.
13
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
Nel frame in alto caricheremo il file top.htm e in quello centrale
il file central.htm (da creare a parte).
Come abbiamo detto, questi due file saranno richiamati dal file
principale, che ripartisce la pagina in due parti e colloca in
ciascuna di esse il file corretto.
Ecco il codice di questo file principale:
<frameset rows="80,*">
<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">
</frameset>
La grandezza dei frame, ossia lo spazio che ognuno di essi deve
occupare) è stabilita dal primo tag, che indica che il frame alto (che
è una riga, rows) deve essere di 80 pixel, mentre l’asterisco (*)
indica che tutto il resto deve essere assegnato al frame centrale.
14
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
La prima riga del file precedente si poteva, ovviamente, scrivere
anche:
<frameset rows="20%,*">
Impostati i due parametri <frameset> e </frameset>, al loro
interno si definiscono i nomi e i file da richiamare nei due frame
creati.
È necessario dare un nome al frame (name="alto") e indicare il
file HTML che dovrà essere caricato dentro al frame
(src="top.htm").
Si devono quindi creare a parte due file di nome "top.htm" e
"central.htm".
Notiamo come sia importante la posizione all'interno del codice per
la corretta interpretazione da parte del browser. Se infatti si
invertono gli ordini in questo modo:
15
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
<frameset rows="80,*">
<frame name="centrale" src="central.htm">
<frame name="alto" src="top.htm">
</frameset>
il browser invertirà l'ordine di assegnazione e caricherà il file
"central.htm" nel frame superiore e il file "top.htm" nel
frame centrale.
16
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Un esempio funzionante è costituito dal seguente listato, che
utilizza i due file Home3.html e MenuTabella.html:
EsempioFrame.html
<html>
<head>
<title>Frame del Surf</title>
</head>
<frameset rows="27%,73%">
<frame src=“Home3.html" scrolling="yes">
<frame src="MenuTabella.html">
</frameset>
</html>
17
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Per creare due frame verticali di questo tipo
è sufficiente sostituire all’attributo rows l’attributo cols:
<frameset cols="100,*">
<frame name="sinistro" src="sx.htm">
<frame name="centrale" src="central.htm">
</frameset>
18
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
È possibile adottare contemporaneamente una divisione sia in righe
(rows) sia in colonne (cols), in modo da creare una finestra divisa
in più frame.
Vediamo come si deve operare sul codice HTML del documento a
seconda del numero e della posizione dei frame che si intendono
creare.
Per avere l’aspetto seguente:
alto
sinistro
centrale
19
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
si può scrivere:
<frameset rows="100,*">
<frame name="alto" src="top.html">
<frameset cols="150,*">
<frame name="sinistro" src="sx.html">
<frame name="centrale" src="central.html">
</frameset>
</frameset>
20
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Si opera nello stesso modo se la colonna di sinistra deve occupare
tutta l’altezza dello schermo:
alto
sinistro
centrale
scrivendo, per esempio:
21
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
<frameset cols="120,*">
<frame name="sinistro" src="sx.htm">
<frameset rows="100,*">
<frame name="alto" src="top.htm">
<frame name="centrale" src="central.htm">
</frameset>
</frameset>
22
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Analogamente, per avere l’aspetto
seguente
si può scrivere:
<frameset cols="120,*">
<frame name="sinistro" src="sx.html">
<frameset rows="100,*">
<frame name="alto" src="top.html">
<frame name="centrale" src="central.html">
</frameset>
</frameset>
23
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Per suddividere il frame centrale in più
righe
si scriverà un codice del tipo:
<frameset cols="120,*">
<frame name="sinistro" src="sx.html">
<frameset rows="20%,60%,20%">
<frame name="alto" src="top.html">
<frame name="centrale" src="central.html">
<frame name="basso" src="basso.html">
</frameset>
</frameset>
24
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Una tecnica analoga si usa per
ottenere una colonna destra che
occupi tutta l’altezza dello
schermo, facendo sempre
attenzione a dove aprire e dove
chiudere i frame.
Ecco il codice relativo:
<frameset cols="75%,25%">
<frameset rows="20%,80%">
<frame name="alto" src="top.html">
<frame name="centrale" src="central.html">
</frameset>
<frame name="destro" src="dx.html">
</frameset>
25
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Osserviamo, infine, la seguente
possibilità:
Essa si può ottenere con:
<frameset cols="75%,25%">
<frameset rows="20%,80%">
<frame name="alto" src="top.htm">
<frameset cols="20%,80%">
<frame name="sinistro" src="sx.htm">
<frame name="centrale" src="central.htm">
</frameset>
</frameset>
<frame name="destro" src="dx.htm">
</frameset>
26
Laboratorio di Applicazioni Informatiche II mod. A
HTML – I Frame (riquadri)
Quindi, ricapitolando…
27
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
Documento
Frame
altezza
in righe
altezza
in righe
larghezza
in colonne
larghezza
in colonne
<FRAMESET>
(al posto di <BODY>)
</FRAMESET>
<FRAMESET Rows=,,,>
(pixel o %)
</FRAMESET>
<FRAMESET Rows=*>
(* = misura relativa)
</FRAMESET>
<FRAMESET Cols=,,,>
(pixel o %)
</FRAMESET>
<FRAMESET Cols=*>
(* = misura relativa)
</FRAMESET>
28
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
cornice
<frameset Frameborder ="yes|no">
colore della cornice
<frameset Bordercolor ="#$$$$$$">
larghezza della cornice <frameset Border=?>
29
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
Definizione del
frame
<frame>
documento da
visualizzare
denominazione
del frame
larghezza dei
margini
<frame src="url">
<frame name="***"|_blank|_self|
_parent|_top>
<frame marginwidth=?>
altezza dei margini <frame marginheight=?>
barra di
scorrimento?
dimensione non
modificabile
contenuto di
ogni singolo
riquadro
margine destro
e sinistro
margine alto e
basso
<frame scrolling="yes|no|auto">
<frame noresize>
30
Laboratorio di Applicazioni Informatiche II mod. A
HTML- I frame
cornice
colore della cornice
contenuto in assenza di
frame
<frame
frameborder="yes|no">
<frame
bordercolor="#$$$$$$">
<noframes> </noframes>
per i
vecchi
browser
31
Scarica

HTML – I Frame (riquadri)