Un cadre (frame en anglais) est une section de page web contenant elle-même une autre page web. La technique des cadres permet de faire évoluer plusieurs pages web simultanément. Par exemple, un cadre peut contenir le menu d'un site, et un autre son contenu (ce qui évite de devoir insérer un menu sur chaque page du site).

Le principal inconvénient des cadres est qu'ils brisent la sémantique des données, en particulier la gestion de l'historique des pages devient complexe. Pour cette raison, leur utilisation n'est plus encouragée.

Définition d'un jeu de cadres : la balise frameset

modifier

Les attributs cols et rows

modifier

Ces attributs servent à déterminer la disposition et les dimensions des cadres : cols pour les colonnes, rows pour les lignes (ou, plus précisément, une séparation verticale ou horizontale).

Imbrication de cadres

modifier

Comme vous l'aurez remarqué, la balise frameset ne peut diviser qu'à l'horizontale ou à la verticale. Pour combiner les deux, il est possible d'imbriquer les balises frameset. Ce résultat s'obtient en définissant un jeu de cadres (toujours avec la balise frameset donc) dans un cadre.

La balise noframe

modifier

Certains navigateurs très anciens ne savent pas comment interpréter les cadres. La balise noframe permet d'indiquer à ces navigateurs comment produire la page web d'une manière alternative. Cette balise est ignorée par les navigateurs sachant interpréter les cadres.

Définition d'un cadre : la balise frame

modifier

L'attribut src

modifier

L'attribut src contient l'adresse (relative ou absolue) de la page à afficher dans le cadre.

L'attribut name

modifier

L'attribut name permet de donner un nom à un cadre. Ceci permet par exemple d'identifier précisément quel cadre mettre à jour lorsque l'on suit un lien hypertexte.

L'attribut longdesc

modifier

L'attribut longdesc s'adresse particulièrement aux non-voyants qui utilisent une interface vocale pour "lire" les pages web. Certains logiciels dédiés ont parfois des difficultés à rendre les contenus des cadres dans un ordre pertinent. L'attribut permet d'effectuer un lien vers une description longue des cadres et de leur intérêt. Il s'agit généralement d'une page web séparée contenant un texte explicatif.

Les marges : les attributs marginwidth, marginheight et frameborder

modifier

L'attribut marginheight accepte une valeur (pixels ou pourcentage) correspondant à une marge par rapport aux bords verticaux (supérieur et inférieur) du cadre. L'attribut marginwidth correspond aux marges horizontales (droite et gauche). L'attribut frameborder accepte les valeurs 1 ou 0 (ou bien TRUE et FALSE) et détermine si le cadre est délimité par une bordure ou non.

Les bordures : les attributs border, bordercolor et frameborder

modifier

Les attributs noresize et scrolling

modifier

noresize détermine si l'internaute peut ou non changer la taille du cadre.

scrolling détermine la présence de barres de défilement (toujours, automatique ou jamais).

Cadres uniques : la balise iframe

modifier

Iframes ou fenêtres intégrées dans une page Web

L'intérêt est d'ajouter dans une page propre, une autre page. Cette méthode est utilisée entre autres pour afficher des bannières de publicité.

L'élément iframe contient une alternative textuelle affichée au cas où les cadres ne seraient pas supportés ou activés.

Les attributs d'iframe

modifier

Exemple de code pour la balise Iframe :

<iframe name="lesteph" src="https://fr.wikibooks.org/w/index.php?title=Le_langage_HTML/Cadres" width="468" height="60" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no">Texte alternatif quand les cadres ne sont pas affichés.</iframe>

Les valeurs de l'attribut target

modifier

target est un attribut de la balise a, la balise servant à inclure des liens hypertexte. Il détermine la cible (signification de "target" en anglais) du lien, c'est-à-dire où ce lien doit être ouvert, en se basant sur l'attribut name des cadres présents.

target peut prendre différentes valeurs :

nom_du_cadre
ouvre le lien dans le cadre dont l'attribut name a la valeur "nom_du_cadre".
_self
le lien s'ouvre dans le même cadre.
_parent
le lien s'ouvre dans le cadre parent du cadre de la page. C'est à dire à la place de la page contenant le <frameset> qui détermine le cadre de la page ou se trouve le lien.
_top
le lien s'ouvre dans la fenêtre courante (annule donc tous les cadres).
_blank
ouvre le lien dans une nouvelle fenêtre.

Note : Certains navigateurs (Mozilla Firefox, Konqueror, Opera, ...) proposent une navigation par onglets, permettant d'afficher plusieurs pages dans une seule fenêtre. Bien que ce type de navigation soit de plus en plus courant et de plus en plus utilisé, il n'existe pas de valeurs à attribuer à target permettant d'ouvrir un lien dans un nouvel onglet (ceci est notamment dû au fait que ce type de navigation n'était pas encore très courante quand HTML 4 est sorti - les onglets ne sont donc pas un standard, mais bien une fonctionnalité supplémentaire proposée par certains navigateurs). Cependant, certains navigateurs, éventuellement munis d'une extension, peuvent proposer d'ouvrir tous les liens ayant _blank comme valeur de l'attribut target dans un nouvel onglet, à voir dans les options de votre navigateur.