Les FRAMES  ou  Cadres :
sont simples - pratiques mais : délicats ! à cause des risques de plantage...

Ne pas perdre de vue le fait que certains  browsers ne peuvent afficher les frames

La division de  l'écran en plusieurs fenêtres nécessite l'utilisation de certaines frames que nous allons étudier sur le champ :

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

1 - PARTAGE DE LA FENÊTRE EN 2 FENÊTRES HORIZONTALES

<HTML>
<HEAD></HEAD>
<FRAMESET ROWS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>
</HTML>

 

Remarquez que:



<FRAMESET></FRAMESET>

remplace

<BODY></BODY>

Observations:

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%;

2 - PARTAGE EN FENÊTRES VERTICALES

<FRAMESET COLS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>

Observation:

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%;

3 - MÉLANGE DES DEUX PARTAGES

<FRAMESET ROWS="30%,70%">
<FRAME>
          <FRAMESET COLS="30%,70%">
         <FRAME>
         <FRAME>
         </FRAMESET>
</FRAMESET>

DONNONS DES ATTRIBUTS A NOS BALISES <FRAMES>:

SRC="URL"

adresse du document à afficher dans la fenêtre

Éditons  TROIS fichiers HTML primaires à installer dans le même répertoire le fichier 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>

  • Reprenons 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>

Ascenseurs
Ils apparaissent AUTOMATIQUEMENT par l'attribut de la balise <FRAME>
Il est possible d'indiquer si oui ou non on souhaite une barre de défilement à l'aide de:

SCROLLING="yes/no/auto"

Nom de la Fenêtre: 
Un autre attribut de cette balise <FRAME> est NAME="NOM"

Name indique le nom de la fenêtre de façon à ce que cette frame puisse être utilisée comme cible d'un lien hypertexte.

Ainsi,  faire un lien sur B pour afficher le contenu de ce lien ( a.htm par exemple pour éviter de l'encodage) dans C .

Le fichier de frames devient alors:

<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  indiquant au browser qu'il doit créer une nouvelle fenêtre afin d'y afficher le fichier. 
    Dans ce cas, vous ouvrez en fait un nouveau browser.
  • _self  indiquant que le fichier sera chargé dans la même fenêtre que celle dans laquelle se trouve le lien.
  • _top  impliquant  l'affichage du fichier sur toute la surface de la fenêtre du browser.

Tous vos liens doivent entre soigneusement vérifiés pour ne pas risquer d'avoir de fâcheuses surprises...

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 que le browser  soit "Netscape" ou "Internet Explorer".
Netscape : "border=0"  Explorer:
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>

La Non Gestion de FRAMES:

La balise <NOFRAMES>...</NOFRAMES>  est utilisée pour indiquer le texte que doivent afficher les browsers incapables de gérer les frames. Il est cependant recommandé  de prévoir une page  sans fenêtres pour que tous  aient la possibilité de visiter votre site.



Google