Cours de (X)HTML / CSS

Les frames


Pour commencer avec les frames

Les frames, appelées aussi cadres en français, permettent de partager l'écran du navigateur en plusieurs fenêtres indépendantes (le plus souvent en 2 fenêtres l'une contenant le sommaire, l'autre le contenu). A chaque fenêtre correspond un document (X)HTML spécifique.

Le jeu de cadres est spécifié dans un fichier, appelé couramment le frameset, du nom de l'élément principal.


<frameset>

Elément définissant une structure de cadre dans un sens vertical ou horizontal. Il est possible d'imbriquer les éléments <frameset>.

Les attributs essentiels sont :


<frame>

Elément-fils de l'élément <frameset> et servant à définir un cadre.

Les attributs essentiels sont :


<noframe>

L'élément <noframe>, fils de l'élément <frameset>, permet de donner un contenu alternatif pour les navigateurs ne prennant en charge les cadres.


Exemple :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title>Accueil</title>
</head>
<frameset rows="100,*">
	<frame src="sommaire.html" name="sommaire" />
	<frame src="chapitre1.html" name="contenu" />
	<noframes>
		<body>
			<p>Votre navigateur ne prend pas en charge les frames.</p>
		</body>
	</noframes>
</frameset>
</html>
		

Exemple de jeu de cadres

Il est à noter que la DTD à utiliser est de type Frameset. L'élément <frameset> est fils de l'élément <html>.


Les liens entre les cadres sont spécifiés par des éléments de type <a href=""> avec en attribut target spécifiant le cadre cible.

Exemple, dans le fichier chapitre.html :

<a href="chapitre1.html" target="contenu">Chapitre 1</a>
		

Pour en finir avec les frames

L'utilisation des frame pose des problèmes majeurs :

Pour ces différentes raisons pratiques, on comprend que les frames soient aujourd'hui en voie de disparition.

En savoir plus :
http://www.projetweb.com/labalise/frames_1.php
http://openweb.eu.org/articles/finir_cadres/