I frame (o cornici) sono utilizzati per visualizzare più di un documento HTML sulla stessa pagina. Ciò significa che si avrà un contenuto senza contenuto, che solamente avrà il ruolo di mostrare al browser quali pagine devono essere visualizzate. Con l'avvento di PHP e CSS questa tecnica viene utilizzata sempre meno.
Solitamente le cornici vengono utilizzate per mostrare il menu separato dal contenuto. Una volta cliccato su un link un'altra pagina visualizzerà il contenuto.
Eccone un esempio:
html<html>
<head></head>
<frameset cols="30%,*">
<frame src="menu.html">
<frame src="content.html">
</frameset>
</html>
Osserva il seguente codice:
html<html>
<head></head>
<frameset rows="20%,*">
<frame src="title.html">
<frameset cols="30%,*">
<frame src="menu.html">
<frame src="content.html">
</frameset>
</frameset>
</html>
frameset rows="#%, *" - "rows" stabilisce l'altezza di ogni cornice che verrà visualizzata. Nell'esempio precedente abbiamo scelto che il primo frame sarà del 20%, e il resto dello spazio rimasto sarà diviso tra menu.html e content.html.
Dovete aver notato che tra un frame e l'altro ci sono alcune linee grigie che la maggior parte delle volte non sono desiderate. È possibile cancellarle utilizzando i tag frameborder e framespacing. Questi attributi saranno introdotti sotto l'etichetta frameset.
**Note: Frameset e frameborder sono lo stesso attributo. Ci sono alcuni browser che non li riconoscono entrambi, solo uno di essi. Per questo, il nostro consiglio è di usare entrambi per una maggiore sicurezza.
Ecco un esempio pratico:
html<html>
<head></head>
<frameset border="0" frameborder="0" framespacing="0" rows="20%,*">
<frame src="title.html">
<frameset border="0" frameborder="0" framespacing="0" cols="30%,*">
<frame src="menu.html">
<frame src="content.html">
</frameset>
</frameset>
</html>
Per mantenere il menu nella sua posizione attuale e che quando clicchiamo sulla pagina dei contatti da aprire, ad esempio, al posto della pagina di contenuto, daremo un nome ad ogni frame e specificheremo il luogo in cui si aprirà utilizzando il tag 'target base'.
Ecco il codice per la nostra pagina:
html<html>
<head>
<base target="content">
</head>
<frameset rows="20%,*">
<frame name="title" src="title.html">
<frameset cols="30%,*">
<frame name="menu" src="menu.html">
<name="content" src="content.html">
</frameset>
</frameset>
</html>
Puoi personalizzare le cornici utilizzando noresize e scrolling
html<html>
<head></head>
<frameset border="2" frameborder="1" framespacing="2" rows="20%,*">
<frame src="title.html" noresize scrolling="no">
<frameset border="4" frameborder="1" framespacing="4" cols="30%,*">
<frame src="menu.html" scrolling="auto" noresize>
<frame src="content.html" scrolling="yes" noresize>
</frameset>
</frameset>
</html>