Frames

I frame sono un modo per suddividere una schermata in più sezioni ognuna delle quali contenente un documento HTML (o un'immagine o altro tipo di file) differente e indipendente.

Quando si decide di suddividere una pagina in frame si omette il tag <body> che viene sostituito dal tag <frameset> che introduce appunto la suddivisione della pagina.

Per suddividere una pagina in frame si devono creare un documento principale (che conterrà le specifiche di suddivisione) e i documenti da caricare nei singoli frame.

Struttura del file "contenitore"


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
 "http://www.w3.org/TR/html4/frameset.dtd">
<html>
	<head>
		<title>Esempio di frame</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	</head>
	<frameset cols="80,*">
		<frame name="leftFrame" scrolling="NO" noresize src="file.htm">
		<frame name="mainFrame" src="file2.htm">
		<noframes>
			<body bgcolor="#FFFFFF" text="#000000">
				Testo alternativo, visualizzato dai browser che non supportano i frame.
			</body>
		</noframes>
	</frameset>
</html>

Notare che la sezione <noframes> deve essere contenuta dentro il tag <frameset>.

Frameset

Il tag <frameset> introduce la suddivisione in righe e colonne del documento.
Ha come attributi:

cols = "percent | pixel| *"
Numero di colonne in cui deve essere suddivisa la pagina
rows = "percent | pixel| *" Numero di righe in cui deve essere suddivisa la pagina

NB: E' possibile utilizzare contemporaneamente gli attributi cols e rows qualora si desideri creare una struttura speculare.
Qualora le righe e le colonne siano di dimensioni o di numero diversi è necessario annidare i frame, inserendo un nuovo frameset al posto del frame corrispondente alla parte di pagina che si vuole dividere.

Frame

Il tag <frame> si usa per definire i frame creati con <frameset>.
Ha come attributi:

src="URL" File o indirizzo web caricato nel frame
name="text"

Nome del frame, utilizzato per riferimenti (ad esempio come valore dell'attributo target dei link)
scrolling="yes" | "no" | "auto"

Indica la presenza o meno di scrollbar associate al frame
noresize Impedisce il ridimensionamento del frame da parte dell'utente
marginwidth="int" Dimensione in pixel dei margini in larghezza del frame
marginheight="int" Dimensione in pixel dei margini in altezza del frame
frameborder="1|0" Presenza (1) o assenza (0) di bordo nel frame

Esempi

Pagina suddivisa in due righe e due colonne di pari dimensioni

frame1

 

Pagina suddivisa in due righe, la prima delle quali suddivisa in due colonne.

frame2

 

Pagina suddivisa in due colonne, la seconda suddivisa in due righe.

frame3