SELFHTML/Aides à la navigation HTML/XHML Cadres |
Le navigateur WWW gère normalement automatiquement les barres de défilement de chaque fenêtre-cadre. S'il n'est pas nécessaire de passer à la page suivante pour afficher la totalité de la fenêtre, la fenêtre n'aura pas de barre de défilement. Si le contenu est plus grand, les fenêtres-cadres se verront affecter automatiquement des barres de défilement. Dans tous les cas, vous pouvez cependant forcer qu'une fenêtre en soit pourvue ou empêcher qu'elle le soit.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*"> <frame src="liens.htm" name="Navigation" scrolling="no"> <frame src="pagedaccueil.htm" name="donnees" scrolling="yes"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
Par la mention scrolling="yes"
dans le repère <frame>
, vous forcez la fenêtre d'affichage à être pourvue dans tous les cas de barres de défilement. Par scrolling="no"
vous l'empêchez. De la même façon il est possible de mentionner scrolling="auto"
, quoique ce soit identique au réglage par défaut et par là même superflu.
Si vous empêchez qu'une fenêtre soit pourvue de barres de défilement, il est possible que les contenus, s'ils sont plus grands que la fenêtre, ne soient pas entièrement affichés. C'est pourquoi n'utilisez scrolling="no"
que si vous êtes sûr que le contenu de la fenêtre tienne entièrement dans la fenêtre-cadre. La mention est judicieuse par exemple si un logo doit être affiché en permanence dans une fenêtre cadre à l'exclusion de toute autre chose. Pour des contenus plus importants, il vous faut être prudent pour empêcher qu'une fenêtre soit pourvue de barres de défilement - Pensez que tous les utilisateurs n'ont pas la même définition d'écran que la votre.
Il vous est possible d'ajuster exactement l'espace entre le bord de la fenêtre et le contenu affiché de la fenêtre cadre. De cette façon par exemple, vous pouvez créer des marges plus larges dans une fenêtre cadre. Si vous voulez afficher un contenu invariable, par exemple un logo, dans une fenêtre cadre vous pouvez le placer exactement dans une fenêtre cadre en ajustant les espaces.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*"> <frame src="liens.htm" name="Navigation" scrolling="no" marginwidth="3" marginheight="30"> <frame src="pagedaccueil.htm" name="donnees" marginwidth="60" marginheight="30"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
Grâce à l'attribut marginwidth=
[pixels] dans le repère <frame>
, vous déterminez l'espace entre le bord gauche ou droit de la fenêtre et le contenu de la fenêtre (margin = marge, width = largeur). Grâce à l'attribut marginheight=
[pixels] vous déterminez l'espace entre le bord haut ou bas de la fenêtre et le contenu de la fenêtre (height = hauteur). Les marges gauche et droite sont toujours de même taille ainsi que les marges haute et basse.
Vous pouvez faire des mentions pour ces deux marges mais aussi seulement pour l'une des deux.
Avec les mentions marginwidth="0" marginheight="0"
le contenu de la fenêtre devrait commencer exactement dans le coin en haut et à gauche. Malheureusement Netscape 4.x insère encore toujours un pixel de marge à l'affichage. Il ne reste comme alternative pour le faire que de positionner le contenu de façon absolue avec des feuilles de style CSS avec top:0px
et left:0px
.
En principe l'utilisateur peut modifier la taille des fenêtres cadres distinctes d'un jeu de cadres affiché en plaçant le curseur sur les cadres entre des fenêtres cadres et en "tirant" pour régler les différentes tailles des fenêtres cadres. Dans de nombreux cas, c'est aussi judicieux et vous devez laisser cette liberté à l'utilisateur. Mais si vous avez par exemple une fenêtre cadre avec un contenu invariable, un logo par exemple, vous pouvez empêcher que l'utilisateur puisse modifier la taille de la fenêtre.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*"> <frame src="liens.htm" name="Navigation" scrolling="no" noresize> <frame src="pagedaccueil.htm" name="donnees"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
Grâce à l'attribut noresize
dans le repère <frame>
, vous empêchez l'utilisateur de modifier sa taille(noresize = no resize = pas de modification de la taille).
Il n'y a pas que la fenêtre cadre dans laquelle la mention a été faite qui ne peut plus être redimensionnée mais aussi toutes les fenêtres cadres voisines. Dans l'exemple ci-dessus on ne peut donc modifier ni la fenêtre cadre de gauche ni la fenêtre cadre de droite. C'est somme toute logique mais vous devez tenir compte de cette conséquence si vous envisagez d'empêcher le re-dimensionnement d'une fenêtre cadre.
Quand vous voulez travailler conformément à XHTML, vous devez noter l'attribut décrit ici sous la forme noresize="noresize"
. D'autres informations à ce sujet dans le chapitre sur XHTML et HTML.
Vous pouvez empêcher que les bordures normalement visibles entre les fenêtres-cadres ne soient visibles. Avec des bordures de fenêtres invisibles, les fenêtres-cadres semblent être des surfaces jointes l'une à l'autre sans couture sur l'écran. Malheureusement la syntaxe pour le faire présente encore à l'heure actuelle des différences entre les navigateurs qui supportent cette propriété depuis longtemps, et le consortium W3 qui veut imposer une autre variante à laquelle les navigateurs ne veulent pas se tenir. Vous avez donc le choix entre écrire conformément à HTML et les navigateurs les plus répandus ignoreront vos mentions ou d'écrire pour les navigateurs en renonçant à la conformité HTML.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*"> <frame src="liens.htm" name="Navigation" scrolling="no" frameborder="0"> <frame src="pagedaccueil.htm" name="donnees"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
<html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*" frameborder="0" framespacing="0" border="0"> <frame src="liens.htm" name="Navigation" scrolling="no"> <frame src="pagedaccueil.htm" name="donnees"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
Quand vous voulez travailler conformément à HTML, notez dans le repère <frame>
désiré l'attribut frameborder=
. Avec frameborder="0"
vous empêchez l'affichage de la bordure visible entre celle-ci et toutes les fenêtres contiguës et avec frameborder="1"
vous affichez de façon explicite la bordure visible (cette dernière possibilité correspond il est vrai au réglage par défaut).
Pour la syntaxe soutenue par les navigateurs, Les attributs nécessaires pour cela sont notés dans le repère d'ouverture <frameset>
du jeu de cadres auquel s'appliquent alors les mentions - elles concernent alors tous les cadres du jeu de cadres.
border=
[pixels] est la syntaxe Netscape et détermine l'épaisseur du cadre en pixels. Sont permises des valeurs numériques comprises entre 0 (ne pas afficher de bordure) et plus (border = bordure).
frameborder=
[1/0 ou bien yes/no] signifie d'après la syntaxe Microsoft que des bordures 3D doivent être affichées ou non. Cet attribut est donc un homonyme de l'attribut conforme au standard HTML mais signifie cependant autre chose.
framespacing=
[pixels] est de la syntaxe Microsoft et détermine l'espace entre les fenêtres-cadres, et par conséquent l'épaisseur de la bordure en pixels (spacing = espace).
Ce n'est qu'avec frameborder="0" framespacing="0"
(donc avec les deux mentions) que vous empêchez avec l'Explorer Internet MS l'affichage des bordures. Si vous ne mentionnez que frameborder="0"
, L'Explorer Internet affiche des espaces visibles entre les fenêtres cadres qui ne sont pas il est vrai les bordures 3D classiques mais des espaces plats. Pour empêcher l'affichage des bordures à la fois pour l'Explorer Internet MS et pour Netscape, vous devez noter les trois mentions frameborder="0" framespacing="0" border="0"
(comme dans l'exemple 2 ci-dessus).
Si vous empêchez l'affichage des bordures entre les fenêtres cadres, l'utilisateur ne peut plus modifier la taille de ces fenêtres. Essayez dans la mesure du possible les projets avec des cadres sans bordure pour cette raison avec différentes résolutions d'écran et différentes tailles de fenêtres d'affichage.
Vous pouvez forcer la bordure entre les fenêtres cadre à être représentée en couleurs. Ces mentions ne font pourtant pas partie du standard HTML et créent du code HTML invalide.
<html> <head> <title>Texte du titre universel</title> </head> <frameset cols="250,*" bordercolor="#FFFF00"> <frame src="liens.htm" name="Navigation" scrolling="no"> <frame src="pagedaccueil.htm" name="donnees"> <noframes> <p>Ce projet utilise des cadres. Chez vous les cadres ne sont pas affichés.</p> </noframes> </frameset> </html> |
Avec la mention bordercolor=
dans le repère <frameset>
du haut, vous pouvez déterminer une couleur de bordure pour toutes les bordures de fenêtres. Pour ce faire, respectez les règles pour définir les couleurs en HTML.
Dans le sommaire de référence HTML vous trouverez des renseignements sur les attributs autorisés et sur ce à quoi il faut veiller pour ces différents attributs:
Référence HTML pour les attributs pour les jeux de cadres (<frameset>...</frameset>
)
Référence HTML pour les attributs pour les cadres (<frame>...</frame>
)
Lien à des cadres | |
Définir des cadres et jeux de cadres | |
SELFHTML/Aides à la navigation HTML/XHML Cadres |
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org