Aller au contenu

Balise HTML <frame>

La balise <frame> définit une fenêtre spécifique, un cadre, dans lequel nous pouvons charger une autre page web. Utilisez l'attribut src pour définir l'adresse de cette page web. La page web peut contenir plusieurs cadres de ce type.

La balise <frame> est utilisée avec l'élément <frameset>, qui définit comment diviser la fenêtre en cadres.

DANGER

La balise <frame> est une balise HTML dépréciée et n'est pas prise en charge dans HTML5. Utilisez plutôt la balise <iframe>.

Lors de l'utilisation de cadres, l'élément <frameset> remplace la balise <body>. L'élément <frameset> définit la structure du frameset (zones dans la fenêtre du navigateur où d'autres pages web sont chargées), le nombre de colonnes et de lignes, ainsi que leur taille en pourcentages ou en pixels. Notez que cette balise est également dépréciée dans HTML5.

TIP

Les pages contenant des cadres ne peuvent être validées que si la déclaration <!DOCTYPE> est définie sur HTML Frameset DTD ou XHTML Frameset DTD.

Utilisez l'attribut rows de la balise <frameset> pour définir des cadres horizontaux, et l'attribut cols pour définir des cadres verticaux.

Syntaxe

La balise <frame> est vide, ce qui signifie que la balise de fermeture n'est pas requise. Cependant, dans XHTML, la balise <frame> doit être auto-fermante (<frame />).

Exemple de la balise HTML <frame> :

Exemple de la balise HTML <frame>

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <frameset cols="50%,50%">
    <frame src="https://www.w3docs.com/learn-html/html-basic.html">
    <frame src="https://www.w3docs.com/learn-css/css-syntax.html">
  </frameset>
</html>

Résultat

exemple de la balise frame

Exemple de la balise HTML <frame> avec l'attribut rows :

Exemple de la balise HTML <frame> avec l'attribut "rows" :

html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
  <head>
    <title>Title of the document</title>
  </head>
  <frameset rows="30%,30%,40%">
    <frame src="https://www.w3docs.com/learn-javascript.html">
    <frame src="https://www.w3docs.com/learn-php.html">
    <frame src="https://www.w3docs.com/learn-git.html">
  </frameset>
</html>

Avantages et inconvénients de la balise <frame>

Voici les avantages de cette balise :

  • Elle permet d'afficher plusieurs documents au sein d'une seule page web.
  • Des pages provenant de différents serveurs peuvent être chargées dans un seul frameset.

La balise <frame> présente les inconvénients suivants :

  • Elle ne permet pas de marquer en favoris les pages web situées à l'intérieur d'un cadre.
  • L'utilisation de trop nombreux cadres entraînera une charge élevée sur le serveur.
  • Elle n'est pas prise en charge par de nombreux anciens navigateurs.

Frames vs iframes

Les éléments <frame> et <iframe> ont un comportement similaire. Cependant, il existe quelques différences entre eux. La balise <frame> est utilisée avec l'élément <frameset>, qui définit comment diviser la fenêtre en cadres. Chacun de ces cadres contient son propre contenu. La balise <iframe> insère le cadre directement dans la même ligne que les autres éléments de la page web.

Attributs

AttributValeurDescription
bordercolorcouleurDéfinit la couleur de la bordure autour du cadre. Non pris en charge dans HTML 5.
frameborder0, 1Définit si la bordure autour du cadre doit être affichée ou non. Non pris en charge dans HTML 5.
longdescURLDéfinit une page contenant une description longue du contenu d'un cadre. Non pris en charge dans HTML 5.
marginheightpixelsDéfinit les marges supérieure et inférieure d'un cadre. Non pris en charge dans HTML 5.
marginwidthpixelsDéfinit les marges gauche et droite d'un cadre. Non pris en charge dans HTML 5.
nametexteDéfinit le nom d'un cadre. (Il est recommandé de toujours définir cet attribut, surtout lorsqu'il est nécessaire de charger un document dans un autre via un lien depuis un cadre.) Non pris en charge dans HTML 5.
noresizenoresizeDéfinit si l'utilisateur peut ou non modifier la taille du cadre. Non pris en charge dans HTML 5.
scrollingoui, non, autoDéfinit si la barre de défilement doit être affichée ou non. Non pris en charge dans HTML 5.
srcURLDéfinit l'URL de la page qui doit être chargée dans le cadre. Non pris en charge dans HTML 5.

L'élément <frame> prend également en charge les Attributs globaux.

Pratique

Parmi les affirmations suivantes, lesquelles sont vraies concernant la balise HTML <frame> ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.