Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

HTML - Les frames

Frames Encyclopédie


Présentation des frames

Grâce à la technologie des frames (en français "cadres") il est désormais possible d'afficher plusieurs pages HTML dans différentes zones (ou cadres).

Les frames ne font pas partie de la spécification du HTML 3.x, il faut donc déclarer sa page comme étant écrite en HTML 4.0 !

Créer des frames

Afin de créer un site contenant des cadres, il suffit de créer un fichier contenant l'agencement des cadres : ce fichier HTML a pour particularité d'avoir un conteneur <FRAMESET> à la place du jeu de balises <BODY>. C'est cette balise qui définit les cadres par leur dimension en pixels ou en pourcentage (%).

Voyons ceci sur 3 exemples:

  • 2 cadres verticaux
  • 2 cadres horizontaux
  • 2 cadres horizontaux et un vertical

Exemple n°1

<FRAMESET COLS="20%,
80%">

<FRAME SRC="frame1.htm" NAME="gauche">

<FRAME SRC="frame2.htm" NAME="droite">

</FRAMESET> 

Exemple n°2

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

Exemple n°3

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

Les attributs de la balise <FRAMESET>

Attribut Valeur Action
Rows pourcentage (entre 1 et 100)
valeur en pixels
En fixant une seules des valeurs et en donnant à l'autre la valeur *, la valeur s'ajuste automatiquement
Cadre horizontal
Cols pourcentage (entre 1 et 100)
valeur en pixels
En fixant une seules des valeurs et en donnant à l'autre la valeur *, la valeur s'ajuste automatiquement
Cadre vertical
Frameborder YES
NO
Indique si le cadre a une bordure ou non
Border=n n est une valeur définissant la taille de la bordure Indique la taille de la bordure
Bordercolor Nom de la couleur
Valeur de la couleur en hexadécimal
Indique la couleur de la bordure
Framespacing=n n est une valeur définissant l'espace entre les cadres Indique l'espace entre les cadres

Les attributs de la balise <FRAME>

La balise <FRAME> permet de définir un ou plusieurs cadres au sein de la balise <FRAMESET>

Attribut Valeur Action
Src URL Définit l'emplacement de la page à afficher dans le cadre
Name "nom" Définit un nom qui permettra d'afficher un autre document dans le cadre gâce à l'attribut Target
Marginwidth=n n est un entier spécifiant le nombre de pixels Taille des marges latérales
Marginheight=n n est un entier spécifiant le nombre de pixels Taille des marges du haut et du bas
Frameborder YES
NO
Détermine si les cadres auront ou non une bordure
Border=n n est un entier spécifiant le nombre de pixels Taille de l'espace entre les cadres (uniquement pour Netscape)
Noresize (Aucune) Interdit à l'utilisateur de redimensionner les cadres (Ce n'est pas la valeur par défaut)
Scrolling YES
NO
AUTO
Permet ou non l'affichage d'une barre de défilement (Auto laisse le navigateur décider de son utilité)

Comment éviter les erreurs avec les navigateurs non compatibles?

On utilisera les balises <NOFRAMES> et </NOFRAMES> permettant de spécifier un texte HTML à afficher en cas de navigateur ne permettant pas d'afficher les frames. Le texte entre les balises <NOFRAMES> et </NOFRAMES> doit donc contenir les balises <BODY> ... </BODY>.

Exemple :

<FRAMESET COLS="20%,
80%">
<FRAME SRC="frame1.htm" NAME="gauche">
<FRAME SRC="frame2.htm" NAME="droite">
</FRAMESET>

<NOFRAMES>
<BODY>
Cette page HTML nécessite un navigateur supportant les frames,
veuillez nous en excuser.
</BODY>
</NOFRAMES>

Désigner un cadre avec un lien hypertexte

Pour faire afficher des liens dans un des cadres, il suffit d'utiliser l'attribut target dans la balise <A HREF ..> pour spécifier le nom du cadre qui a été spécifié dans la balise <FRAME> par l'attribut NAME.

Par exemple:

<A HREF="page.htm" TARGET="gauche">

Valeur Action
_self Affiche la cible dans le même cadre que le lien
_parent Affiche la cible dans le cadre de niveau supérieur
_blank Affiche la cible dans une nouvelle fenêtre
_top Affiche la cible dans la fenêtre entière du navigateur

Trucs & astuces pertinents trouvés dans la base de connaissances

23/01 15h45 Comment aspirer un site Web ? (Web)
22/11 13h03 On peut protéger une page web/une image contre la copie (Mythes et légendes)
24/09 01h59 -Un document de référence (HTML)
21/09 09h44 Critères de choix d'un langage/framework (Programmation)
11/04 15h03 Convertir une page en PDF - Méthode simple (Webmaster)
18/02 22h11 .Net Framework Les patchs KB- : La solution ! (Windows)
27/01 09h18 Récupérer un site web en .chm (Windows Help) (Téléchargement)
HTML Frames Plus d'astuces sur « HTML Frames »

Discussions pertinentes trouvées dans le forum

26/05 09h50 html frame centrale [html] faire une frame centrale Webmastering 26/05 10h58->shako952
11/09 18h52 frame link html Pb Frame/link en HTML Webmastering 11/09 21h20->ptitquat1
02/06 17h40 html frameset [HTML] frameset Webmastering 03/06 11h24->flokocha9
30/04 09h16 html frames elles has been [HTML] Les Frames sont elles Has-Been ??? Webmastering 30/04 16h26->batmat8
28/04 22h36 frame html frame en html aidez-moi Webmastering 10/06 16h16->StreM8
05/03 22h02 html frames Problème HTML frames Webmastering 08/04 01h42->bmgg47
26/06 10h31 html frame html frame ?? Webmastering 26/06 12h06->peppena6
24/10 00h32 html integration frame HTML : integration frame Webmastering 24/10 14h12->br3j6
17/11 23h24 html frame tableau HTML: frame dans un tableau??? Webmastering 19/11 22h05->tomtom6
30/10 12h26 html redirection frame probleme html + redirection dans frame Développement 30/10 14h39->mouss6
Discussion fermée Problème résolu HTML Frames Plus de discussions sur « HTML Frames »

Ce document intitulé « HTML - Les frames » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.