En plus des documents contenus dans chaque frame, il faut créer le découpage de la page, c'est la page mère (appelons-la page0.html), elle ne contient rien d'affichable même si c'est un fichier html comme les autres, elle définit seulement:
- les zones où l'on crée les frames dans la fenêtre du navigateur (avec FRAMESET et COLS ou ROWS)
- quel est le document initial contenu dans la frame (avec FRAME SRC="", et le nom de celles-ci (avec NAME)
Le document initial s'affiche lui, sauf bien entendu s'il s'agit d'un nouveau découpage de frames.
<HTML>
<HEAD>
<TITLE>Le titre de l'ensemble des frames suivantes</TITLE>
</HEAD>
<FRAMESET COLS="*,180" BORDER="1">
<FRAME SRC="page1.html" NAME="cible1">
<FRAME SRC="nav.html" NAME="cible2">
</FRAMESET>
<NOFRAMES>
<HR><H3>Votre navigateur n'affiche pas de frames:</H3><P>
Pour voir les pages utilisez le <A HREF="nav.html">navigateur</A>,
sélectionnez la page de votre choix, puis utilisez le bouton arrière de votre
navigateur pour sélectionner une autre page.
</NOFRAMES>
</HTML>
Ce qui donne:
Une frame du bord gauche de la page jusqu'à 180 pixels du bort de droite (grâce à COLS), contenant le document "page1.html" et de nom "cible1".
Une frame à droite (je suis droitier mais surtout anti-conformiste) de la page de 180 pixels de large, contenant le document "nav.html" et de nom "cible2".
Page mère (page0.html) (invisible) |
|
Observation importante, il n'y a pas de champ <BODY> dans la page mère, une déclaration de frames ne doit pas contenir de texte, celui-ci ne sera de toutes façons pas affiché, sauf sur un navigateur ne gérant pas les frames ou dans le cas ou celles-ci sont désactivées.
N'ommettez pas le titre dans la page mère entre <TITLE> et </TITLE>, car même s'il ne se voit pas, il peut-être d'une grande aide pour les non-voyants (dans les frames aussi d'ailleurs). |
Le marqueur <NOFRAMES> permet de passer du texte pour ces cas-là, vous pouvez alors rediriger l'utilisateur sur des pages sans frames, ou utiliser chaque morceau de frame comme page "normale" en sautant les définitions de frames, ou encore, utiliser un "navigateur" contenant des liens sur les pages principales comme suggéré dans l'exemple ci-dessus.
COLS et ROWS déterminent le sens du découpage (dans le sens de la lecture), à savoir respectivement colonnes ou rangées, dont la quantité est à votre discrétion, mais dont le total ne doit pas dépasser la taille de la page. Dans l'exemple ci-dessus on a défini par <FRAMESET COLS=""> tout le reste de la page avec *, puis, une bande verticale de 180 pixels de large. On aurait aussi bien pu utiliser ROWS="*,10%" (ou ROWS="90%,10%") pour définir la presque totalité de hauteur disponible de la page et un bandeau horizontal, en bas, de 10% (il est bien sûr aussi possible de donner une valeur en pixels à la place d'un pourcentage, mais comme le total ne doit pas dépasser 100%, il faudra alors aussi utiliser *).
On défini ensuite le contenu de départ de la première frame avec <FRAME SRC="xxx">, puis de la seconde, dans ce cas-ci on charge une page de départ originalement baptisée "page1.html" dans la zone nommée "cible1" et une autre nommée "nav.html" dans la zone "cible2" (noms donnés grâce à l'option NAME="xxx" de FRAME et qui serviront plus loin).
Supposez par exemple que le navigateur (nav.html) contienne un certain nombre de liens sur toutes vos pages (par hasard) et que ces liens s'appellent (par pure coïncidence) "page2.html", "page3.html", etc...
Et bien c'est raté, en l'absence de toute précision un clic sur un de ces liens chargera le document voulu MAIS DANS LA FRAME SUR LAQUELLE VOUS AVEZ CLIQUE c'est à dire (dans ce cas-ci) à l'intérieur de la frame navigateur, ce qui n'est pas vraiment l'effet souhaité. |
Il est absolument nécessaire en cas d'utilisation de frames de préciser pour chaque lien existant, le nom de la frame dans laquelle charger un document (sauf bien entendu si l'on souhaite qu'il se charge dans la frame où se trouve le lien). |
Ceci se fait grâce à l'option TARGET du marqueur <A HREF="">: | <A HREF="page2.html" TARGET="cible1">Page 2</A> |
Ce qui placera bien entendu la page2 dans la partie principale dénommée "cible1" dans la déclaration <FRAME>.
Si ce n'est pas encore assez clair voici une autre explication: HREF="" contient le nom du document à charger et TARGET=""contient le nom de la frame où charger ce document. |
Si vous voulez changer le navigateur lui-même par un autre document avec un lien placé dans n'importe quel document (y compris nav.html lui-même), il suffit de faire ceci:
<A HREF="nav2.html" TARGET="cible2">Changement de navigateur</A> |
Ce qui placera le document "nav2.html" dans la frame "cible2", simple et de bon goût.
|