Les
Frames
Quoi de plus simple que les frames?
Mais aussi quoi de plus délicat et dangereux (risque de
plantage) que les frames? En outre, tous les browsers n'ont pas la
possibilité de les afficher.
Pour diviser l'écran en
plusieurs fenêtres, les balises sont peu nombreuses :
| Zone
avec des fenêtres |
<FRAMESET>
</FRAMESET> |
Début
de zone avec des fenêtres
Fin de zone avec des fenêtres |
Agencement
des
fenêtres |
<FRAMESET
ROWS="...">
<FRAMESET COLS="...">
|
Fenêtres
horizontales
Fenêtres verticales |
Il est impératif de
travailler avec des exemples. Pour obtenir un agencement ainsi :

Il faut employer les
balises suivantes :
<HTML>
<HEAD></HEAD>
<FRAMESET ROWS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>
</HTML>
|
Attention!
<FRAMESET></FRAMESET>
remplace
<BODY></BODY>
|
L'attribut
ROWS="hauteur1,hauteur2,...,hauteurN" définit
la hauteur des différentes fenêtres en cas de
division horizontale.
La hauteur s'exprime en pixels ou en %. Dans ce cas, on veillera
à ce que le total soit égal à100%; |
Le même pour
un agencement vertical
<FRAMESET
COLS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>

L'attribut
COLS="largeur1,largeur2,...,largeurN" définit
la largeur des différentes fenêtres en cas de
division verticale
La hauteur s'exprime en pixels ou en %. Dans ce cas, on veillera
à ce que le total soit égal à100%; |
On peut mélanger les
deux :
<FRAMESET
ROWS="30%,70%">
<FRAME>
<FRAMESET COLS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>
</FRAMESET>

| Pour
l'instant, nos frames sont vides. On va donc leur donner à
manger par des attributs de la balise <FRAME>. |
| SRC="URL" |
adresse
du document à afficher dans la fenêtre |
|
On construit 3 fichiers Html
élémentaires que l'on place dans le
même répertoire que le fichier de frames. |
| A.htm |
B.htm |
C.htm |
<HTML><BODY>
<H4>A</H4>
</BODY></HTML> |
<HTML><BODY>
<H1>B</H1>
</BODY></HTML> |
<HTML><BODY>
<H1>C</H1>
</BODY></HTML> |
On reprend le fichier de frame
précédent que l'on complète.
<FRAMESET
ROWS="30%,70%">
<FRAME SRC="A.htm">
<FRAMESET COLS="30%,70%">
<FRAME SRC="B.htm">
<FRAME SRC="C.htm">
</FRAMESET>
</FRAMESET>

| Les ascenseurs, comme
à la fenêtre A, apparaissent automatiquement. Par
l'attribut de la balise <FRAME>
SCROLLING="yes/no/auto"
vous pouvez indiquer si la
fenêtre doit ou non posséder une barre de
défilement.
|
|
Un
autre attribut de cette balise <FRAME> est NAME="NOM". Name indique le nom
de la fenêtre de telle sorte que cette frame puisse
être utilisée comme cible d'un lien hypertexte. |
Ainsi, je voudrais faire un lien
sur B pour afficher le contenu de ce lien (prenons le fichier a.htm
pour éviter de l'encodage) dans C .
Le fichier de frames devient :
<FRAMESET
ROWS="30%,70%">
<FRAME SRC="A.htm">
<FRAMESET COLS="30%,70%">
<FRAME SRC="B.htm">
<FRAME SRC="C.htm" NAME="fenetreC">
</FRAMESET>
</FRAMESET>
Et
on met un lien vers A.htm dans le fichier B.htm en désignant
comme cible la frame C.
<HTML><BODY>
<A HREF="A.htm" TARGET="fenetreC"><H1>B</H1></A>
</BODY></HTML>

L'attribut TARGET peut aussi
prendre certaines valeurs prédéfinies :
- _blank
qui indique au browser qu'il doit
créer une nouvelle fenêtre afin d'y afficher le
fichier. Dans ce cas, vous ouvrer en fait un nouveau browser.
- _self
qui indique que le fichier sera chargé dans la
même fenêtre que celle dans laquelle se trouve le
lien.
- _top
qui implique l'affichage du fichier sur toute la surface de la
fenêtre du browser.
VERIFIEZ TOUJOURS VOS DIFFERENTS LIENS AVEC DES FRAMES.
Vous éviterez ainsi que votre beau site ne devienne
rapidement une "soupe".
|
Par
défaut, les cadres sont séparés par
des bordures. Il est possible de supprimer ces bordures mais les
attributs à utiliser diffèrent selon Netscape ou
Internet Explorer.
Netscape utilise l'attribut "border=0" et Explorer, les attributs
"frameborder=no" et "framespacing=0" (pour enlever l'espace entre les
cadres). Le tout cohabite sans problème. La balise devient
alors par exemple :
<FRAMESET COLS="30%,70%"
border=0 frameborder=no framespacing=0> |
|
Il
y a pour terminer la balise <NOFRAMES>...</NOFRAMES>
qui est utilisée pour indiquer le texte que doivent afficher
les browsers incapables de gérer les frames. Il est
même indiqué de prévoir une page sans
fenêtres pour que ces visiteurs puissent profiter
quand-même de votre site. |