Les frames


Les frames ont été introduites avec Netscape 2. Elles permettent de découper la fenêtre principale du browser en sous-fenêtres dépendantes les unes des autres et d'afficher dans chacune une page. Cliquer sur un lien d'une frame peut ouvrir un document dans une des autres frames ou dans une nouvelle fenêtre.

Bien que les frames ne fasse pas parti de la définition HTML 3.2, des propositions sont déja soumises à l'approbation du W3C.

FRAMESET -- (FRAMESET | FRAME) +
rows CDATA #IMPLIED
cols CDATA #IMPLIED
onLoad CDATA #IMPLIED
onUnload CDATA #IMPLIED
FRAME -O EMPTY
name CDATA #IMPLIED Nom de la frame afin de l'identifier par la suite
src %URL #IMPLIED Contenu de la frame
frameborder ( 1 | 0 ) 1 0 supprime l'effet 3D des bordures.
marginwidth %Pixels #IMPLIED
marginheight %Pixels #IMPLIED
noresize (noresize) #IMPLIED
scrolling (yes | no | auto ) auto
IFRAME -- %body.content
name CDATA #IMPLIED
src %URL #IMPLIED
frameborder ( 1 | 0 ) 1
marginwidth %Pixels #IMPLIED
marginheight %Pixels #IMPLIED
scrolling (yes | no | auto ) auto
align %IAlign #IMPLIED
NOFRAMES -- %body.content

On peut faire le lien en ciblant une frame en utilisant l'attribut target dans la balise <A href=" ">
_blank : ouvre une nouvelle fenêtre vierge et y affiche la page.
_self : affiche la page dans la frame courante.
_top : affiche la page dans la fenêtre du browser en supprimant toutes les frames présente.
_parent : affiche la page dans la fenêtre du browser en supprimant les frames présente du niveau juste supérieur;

Frames

<FRAMESET ROWS=def|COLS=def [FRAMEBORDER=yes|no] [BORDER=n] [BORDERCOLOR=#RRVVBB|couleur] [FRAMESPACING=n] [...]> NS 2.0, IE 3.0
Définit la subdivision d'une page en colonnes ou rangées appelés frames. Le tag FRAMESET sert de container pour recevoir des tags FRAME décrivant la structure complète et le contenu des différentes frames. L'intégration de containers FRAMESET supplémentaires permet de diviser à son tour chaque frame. On peut ainsi, en alternant rangées et colonnes, découper la fenêtre de toutes les manières possibles, a quelques exceptions prés. Doit se finir avec /FRAMESET.
ROWS=def|COLS=def NS 2.0, IE 3.0
Indique si la fenêtres doit être partagée en colonnes 'COLS' ou en rangées 'ROWS'.
'DEF' est une énumération de valeurs séparées par une virgule qui définissent la largeur ou la hauteur de chaque frames. Elles peuvent être donné en n pixels, en n% de la fenêtre ou calculé automatiquement (*).
Par exemple COLS="132,*,25%" dessinera 3 colonnes. La première de 132 pixels de large, la troisième de 25% de la largeur de la fenêtre et la seconde prend l'espace restant disponibles.
[FRAMEBORDER=yes|no|0|1] NS 2.0, IE 3.0
Détermine l'affichage de l'effet 3D des bordures. 0 ou 'no' pour désactiver l'effet 3D. 1 ou 'yes' par défaut.
[BORDER=n] et [FRAMESPACING=n] NS 2.0 et IE 3.0
Différentes manières d'indiquer la largeur de la bordure en pixels. 0 empêche l'affichage des cadres. 5 est la valeur par défaut.
[BORDERCOLOR=#RRVVBB|couleur] NS 2.0
Définit la couleur des bordures des frames soit par un nom de couleur, soit par une valeur absolue RVB sauf dans le cas ou FRAMEBORDER=0. La bordure perd son effet 3D lorsque cet attribut est utilisé.
[ONBLUR=Event-Handler] NS 3.0
Evénement JavaScript exécuté dès que la fenêtre contenant le FRAMESET perd le focus.
[ONFOCUS=Event-Handler] NS 3.0
Evénement JavaScript exécuté dès que la fenêtre contenant le FRAMESET reçoit le focus.
[ONLOAD=Event-Handler] NS 3.0
Evénement JavaScript exécuté lors du chargement du FRAMESET.
[ONUNLOAD=Event-Handler] NS 3.0
Evénement JavaScript exécuté lorsque le FRAMESET courant est quitté et déchargé.

<FRAME SRC=url NAME="ident" [...]> NS 2.0, IE 3.0
Définit une frame à l'intérieur du container FRAMESET. FRAME est automatiquement refermé par la balise FRAME ou /FRAMESET suivante. Les paramètres suivants peuvent être utilisés :

SRC=url NS 2.0, IE 3.0
URL de la ressource devant s'afficher dans la frame. Ça peut être une page Web, une simple image, un site FTP...
NAME="ident" NS 2.0, IE 3.0
Identificateur de la frame afin de pouvoir s'y référencer par la suite, notamment grâce à l'attribut TARGET des balises A, FORM.
[MARGINWIDTH=n] [MARGINHEIGHT=n] NS 2.0, IE 3.0
Définit l'épaisseur en pixels des marges horizontales 'MARGINWIDTH' (droite et gauche) et verticales 'MARGINHEIGHT' (haut et bas) séparant les bordures de la frame et son contenu.
[NORESIZE] NS 2.0, IE 3.0
Interdit à l'utilisateur de redimensionner la taille de la frame à l'aide du navigateur (en faisant glisser ses bordures à la souris).
[SCROLLING=yes|no|auto] NS 2.0, IE 3.0
Définit si une frame doit avoir des ascenseurs permettant à l'utilisateur de visualiser la partie du document situé à l'extéreiur de la zone visible.
'YES'. Affiche les barres de défilement même si cela est inutile.
'NO'. N'affiche pas les barres de défilement même si cela est utile.
'AUTO'. N'affiche pas les barres de défilement qu'au besoin. C'est la valeur par défaut.
Trés peu de cas nécessite l'emploi de cet attribut. Il est préférable de ne pas l'utiliser et de laisser le navigateur déterminer lui-même leur besoin.
[FRAMEBORDER=yes|no|0|1] NS 2.0, IE 3.0
Indique si le navigateur doit dessiner les bordures de la frame ou non (0 ou 'no'). 1 ou 'yes' sont les valeurs par défaut.
[BORDERCOLOR=#RRVVBB|couleur] NS 2.0
Définit la couleur des bordures de la frame soit par un nom de couleur, soit par une valeur absolue RVB sauf dans le cas ou FRAMEBORDER=0. La bordure perd son effet 3D lorsque cet attribut est utilisé.
[BORDER=n] et [FRAMESPACING=n] NS 2.0 et IE 3.0
Définit l'épaisseur des bordure de la frame en pixels. 5 est la valeur par défaut. Ces valeurs sont écrasées par celles définit dans FRAMESET.

<NOFRAMES>text</NOFRAMES> NS 2.0, IE 3.0
Le texte et les images à l'intérieur de ces balises ne sont pas affichés par les navigateurs qui supporte les frames mais le sont par ceux qui ne supportent pas cette technologie. Cela permet aux concepteurs de pages Web de se mettre à la portée des navigateurs ne gérant pas les frames en écrivant une partie de son site à l'intérieur de ce container. Une sorte de boite de compatibilité !! Doit finir avec /NOFRAMES.
Mettez la page principale dans ces tags avec les liens vers les autres pages.

Frames flottantes

Les frames flottantes sont une extension Internet Explorer. Une frame flottante fonctionne comme une image et peut être placée n'importe où dans la page.

<IFRAME [...]><FRAME [...]></IFRAME> IE 3.0
'Internal Frame'. Débute et finit la définition d'une frame flottante. Malgré que IFRAME ne soit pas un container, il doit être terminé avec /IFRAME. Le texte entre ces deux balises est ignoré par les browsers compatibles.

SRC=url
URL de la ressource devant être affiché dans la frame.
NAME="ident" IE 3.0
Identificateur de la frame utilisé par l'attribut TARGET de différentes balise.
[WIDTH=n] [HEIGHT=n] IE 3.0
Définit la largeur 'WIDTH' et la hauteur 'HEIGHT' de la frame. Si ces attributs ne sont pas précisés, le navigateur prend la place nécessaire à l'affichage du document.
[SCROLLING=yes|no|auto] IE 3.0
Définit si la frame doit avoir des ascenseurs. Si 'AUTO' est utilisé (valeur par défaut), ils ne seront placés qu'au besoin.
[HSPACE=n] [VSPACE=n] IE 3.0
Indique l'espace horizontal (gauche et droit) et vertical (haut et bas) en pixels entre la frame flottante et les éléments entourant de la même manière que dans la balise IMG.
[MARGINWIDTH=n] [MARGINHEIGHT=n] IE 3.0
Définit la taille en pixels des marges horizontales 'MARGINWIDTH' (droite et gauche) et verticales 'MARGINHEIGHT' (haut et bas) séparant les bordures de la frame flottante et son contenu.
[ALIGN=left|right|top|middle|bottom|texttop|absmiddle|absbottom|baseline] IE 3.0
Définit l'alignement de la frame dans la fenêtre du navigateur par rapport au élément alentour. Fonctionne pareil que dans l'insertion d'images avec la balise IMG.
'LEFT'. La frame s'affiche sur la gauche de la fenêtre du navigateur entourée à droite par le texte et les autres éléments de la page.
'RIGHT'. La frame s'affiche sur la gdroite de la fenêtre du navigateur entourée à gauche par le texte et les autres éléments de la page.
'TOP'. Le haut de la frame s'aligne avec le haut de la ligne de texte environnant. Le retour à la ligne s'effectue sous la frame.
'MIDDLE'. Le milieu de la frame s'aligne avec la ligne de texte environnant. Le retour à la ligne s'effectue sous la frame.
'BOTTOM'. Le bas de la frame s'aligne avec le bas de de la ligne de texte environnant. Le retour à la ligne s'effectue sous la frame.
[FRAMEBORDER=yes|no|0|1] IE 3.0
Indique si le navigateur doit dessiner les bordures de la frame flottante ou non (0 ou 'no'). 0 ou 'no' sont les valeurs par défaut.

Il est possible de placer une image de fond dans l'épaisseur des bordures en utilisant la balise <BODY background=...>.

<HTML>
<BODY background=image.gif>

<FRAMESET rows=20%,* frameborder=0 framespacing=20>
<FRAME src=frame1.html>
<FRAME src=frame2.html>
</FRAMESET>

</BODY>
</HTML>

Attention, une telle page ne s'affichera pas avec Netscape pour qui les balises FRAMESET ne doivent pas se trouver à l'intérieur d'une balise BODY.


Documents de référence


Christophe Merlet
redfox@redfoxcenter.org
©Tous droits réservés
12 août 1997