Frame

Introdotti a partire dalla versione 2 di Netscape e dalla 3 di Explorer, i frame rivoluzionano decisamente l'aspetto di una pagina Web, permettendo l'inserimento di più viste indipendenti all'interno della stessa finestra. In pratica, su ogni porzione della finestra può essere definito un frame, che contiene una diversa risorsa Web.

L'esempio tipico è quello utilizzato per questa presentazione: una finestra con un frame laterale contenente un menù di ancore, che rimane sempre in primo piano, mentre nel frame principale vengono presentati i documenti localizzati dalle ancore del menù.


Sintassi

Per dividere la pagina in frame è necessario creare un documento principale che definisca dimensioni e contenuto dei singoli frame. Tale documento non ha corpo, dunque non contiene altri elementi a parte l'elemento:

 <frameset [cols="%,%"] [rows="%,%"]>....</frameset>

gli attributi COLS e ROWS dividono la pagina in porzioni verticali e orizzontali, rispettivamente. Si possono usare valori percentuali, in pixel e "*", che corrisponde a "lo spazio rimanente": usato per l'ultimo frame assicura il giusto dimensionamento.

All'interno del frameset, ogni elemento frame è definito dal tag:

 <frame[name="name"] src="filename"
[scrolling="yes" | "auto" | "no" ] [frameborder= "0" | "1"]>

SRC indica il percorso del documento da visualizzare nel frame, SCROLLING abilita o disabilita la visualizzazione  delle barre di scorrimento laterali.

L'attributo NAME permette di riferire il frame come destinatario del documento collegato da un'ancora, dove si specificherà l'attributo TARGET:

 <a href="url" target="name">

Esempio

I documenti a.html e b.html sono due pagine colorate.

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
   "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Frame</title>
</head>
<frameset cols="22%,*">
<frame name="lato" src="./a.html">
<frame name="main" src="./b.html">
</frameset>
</html>