Graças à tecnologia das frames, é doravante possível afixar várias páginas HTML em diferentes zonas (ou quadros).
As frames não fazem parte da especificação do HTML 3.x, é necessário por conseguinte declarar a sua página como escrita em HTML 4.0!
Para criar um site que contém molduras, basta criar um ficheiro que contém a disposição das molduras: este ficheiro HTML tem como particularidade ter um contentor <FRAMESET> em vez do jogo de balizas <BODY>. É esta baliza que define os quadros pela sua dimensão em pixéis ou percentagem (%).
Vejamos isto em 3 exemplos:
<FRAMESET COLS="20%, 80%"> <FRAME SRC="frame1.htm" NAME="gauche"> <FRAME SRC="frame2.htm" NAME="droite"> </FRAMESET>

<FRAMESET ROWS="20%, 80%"> <FRAME SRC="frame1.htm" NAME="haut"> <FRAME SRC="frame2.htm" NAME="bas"> </FRAMESET>

<FRAMESET COLS="20%, 80%"> <FRAME SRC="frame1.htm" NAME="gauche"> <FRAMESET ROWS="50%, 50%"> <FRAME SRC="frame2.htm" NAME="droit_haut"> <FRAME SRC="frame3.htm" NAME="droit_bas"> </FRAMESET>

| Atributo | Valor | Ação |
|---|---|---|
| Rows | percentagem (entre 1 e 100)
valor em pixéis Fixando um único valor e dando ao outro o valor *, o valor ajusta-se automaticamente | Quadro horizontal |
| Cols | percentagem (entre 1 e 100)
valor em pixéis Fixando um único valor e dando ao outro o valor *, o valor ajusta-se automaticamente | Quadro vertical |
| Frameborder | YES
NO | Indica se o quadro tem uma cercadura ou não |
| Border=n | é um valor que define a dimensão da cercadura | Indica a dimensão da cercadura |
| Bordercolor | Nome da cor
Valor da cor hexadecimal | Indica a cor da cercadura |
| Framespacing=n | é um valor que define o espaço entre os quadros | Indica o espaço entre os quadros |
A baliza <FRAME> permite definir um ou vários quadros na baliza <FRAMESET>
| Atributo | Valor | Acção |
|---|---|---|
| Src | URL | Define o lugar da página a afixar no quadro |
| Name | "nome" | Define um nome que permitirá afixar outro documento no quadro graças ao atributo Target |
| Marginwidth=n | é um número inteiro que especifica o número de pixéis | Dimensão das margens laterais |
| Marginheight=n | é um número inteiro que especifica o número de pixéis | Dimensão das margens da parte superior e a parte inferior |
| Frameborder | YES
NO | Determina se os quadros terão ou não uma cercadura |
| Border=n | é uma número inteiro que especifica o número de pixéis | Dimensão do espaço entre os quadros (unicamente para Netscape) |
| Noresize | (Aucune) | Impede o utilizador de redimendionar os quadros (não é o valor por defeito) |
| Scrolling | YES
NO AUTO | Permite ou não a afixação de uma barra de desfile (Auto deixa o navegador decidir da sua utilidade) |
Utilizar-se-ão as balizas <NOFRAMES> e </NOFRAMES> que permitem especificar um texto HTML a afixar no caso de navegador que não permite afixar as frames. O texto entre as balizas <NOFRAMES> e </NOFRAMES> deve por conseguinte conter as balizas <BODY>… </BODY>.
Exemplo :
<FRAMESET COLS="20%, 80%"> <FRAME SRC="frame1.htm" NAME="gauche"> <FRAME SRC="frame2.htm" NAME="droite"> </FRAMESET>
<NOFRAMES> <BODY> Esta página HTML necessita um navegador que suporte frames, queira desculpar-nos pelo inconveniente. </BODY> </NOFRAMES>
Para afixar ligações num dos quadros, basta utilizar o atributo target na baliza <A HREF. > para especificar o nome do quadro que foi especificado na baliza <FRAME> pelo atributo NAME.
Por exemplo:
<A HREF="page.htm" TARGET="gauche">
| Valor | Acção |
|---|---|
| _self | Mostra o alvo no mesmo quadro que a relação |
| _parent | Mostra o alvo no âmbito de nível superior |
| _blank | Mostra o alvo numa nova janela |
| _top | Mostra o alvo na janela inteira do navegador |