2.1Les frames :

Depuis leur apparition dans la version 4.0 d'HTML, les frames (cadres) sont une source de débat intarissable. En effet, mal utilisées, elles deviennent gênantes pour le visiteur. Pour ne pas rejoindre les webmasters qui ne maîtrisent pas ce sujet ou qui utilisent les frames à tort et à travers, suivez-nous dans cet atelier fort instructif.

2.1.1 Les frames, qu'est-ce que c'est ?

Les frames, vous en avez sûrement entendu parler, mais qu'est-ce que c'est exactement ?

Il s'agit d'une technique qui permet d'afficher plusieurs pages distinctes dans une seule fenêtre de navigateur. Grâce à cet "assemblage", vous pouvez conserver certaines informations dans une partie du navigateur et naviguer librement dans une autre zone. L'utilisation la plus fréquente des frames consiste à placer une barre de navigation ou un menu dans une frame fixe (en haut ou sur le côté gauche en général) et d'afficher le contenu du site sur le reste de la page.

L'utilisation des frames doit être la plus transparente possible, quand elle n'est pas optionnelle. En effet, il faut savoir que certains navigateurs ne supportent pas les frames et que certains utilisateurs ne les aiment pas, tout simplement

2.1.2 Le fichier frameset :

Passons aux choses sérieuses. Les frames reposent sur un seul fichier qui détermine l'affichage des différentes pages.

Un exemple simple :

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

Deux frames verticales sont définies ici dans la balise <FRAMESET>

La première est une colonne qui occupe 20% de la fenêtre du navigateur, la seconde s'étale sur l'espace qui reste à droite (soit les 80% de la fenêtre).

La balise <FRAMSET> prend deux attributs pour la définition des frames :

Dans les deux cas, les tailles des frames sont passées en paramètres et séparées par une virgule. Cette taille peut être donnée soit en nombre de pixels, soit en pourcentage (comme ici).

Occuper le reste de la fenêtre On peut utiliser le caractère * pour indiquer que la frame correspondante occupe toute la place laissée libre par la première.

2.1.3 La balise <FRAME> :

Nous venons de le voir, la balise <FRAMESET> sert à définir l'occupation des frames sur la page. Maintenant, comment définir les pages qui doivent être affichées dans ces frames ? Reprenons le même exemple :

<FRAMESET COLS="20%,80%">
<FRAMENAME ="gauche" SRC="menu.html">
<FRAMENAME ="droite" SRC="accueil.html">
</FRAMESET>

Les deux balises <FRAME> désignent les fichiers HTML que le navigateur doit afficher dans nos deux colonnes. Cette balise possède deux attributs incontournables :

Combien de frames ?

Le nombre de balises <FRAME> n'est pas limité, mais on évite en général d'en utiliser plus de trois.

2.1.4 Frames imbriquées :

Rien n'empêche une frame d'être composée d'autres frames. Il suffit pour cela d'imbriquer les <FRAMESET>

<FRAME SET> COLS="100,*">
<FRAME NAME="gauche" SRC="menu.html">
<FRAME SET ROWS="20%,80%">
<FRAME NAME="haut" SRC="banniere.html">
<FRAME NAME ="haut" SRC="banniere.html">
</FRAME SET>
<NOFRAMES>
Votre navigateur ne supporte pas les frames.
</NOFRAMES>

</FRAMESET>

Nous avons ici trois frames :

CONSEIL : Compatibilité Nous avons introduit dans cet exemple la balise <NOFRAMES>. C'est elle qui contient le code destiné aux navigateurs ne supportant pas les frames.

2.1.5 Liens et cibles dans une frame :

Maintenant que vous avez défini les frames de votre site, il faut créer des liens entre elles.

Par défaut, quand on active un lien, la page de destination s'ouvre dans la frame courante, c'est-à-dire celle qui contenait le lien.

Si vous avez défini une frame contenant le menu de votre site et vous contentez de liens classiques, les différentes pages de votre site s'afficheront en lieu et place du menu, pas dans votre page principale.

Pour définir dans quelle frame afficher votre page, utilisez l'attribut TARGET de la balise <A> et donnez-lui comme valeur le nom de la frame de destination (attribut NAME de l a balise FRAME)

Par exemple, si vous définissez ce lien sur la page menu.html :

<A HREF="mapage1.html" TARGET="principal">Premiere page

le fichier mapage1.html s'affichera dans la frame principale du site. Mais la page menu.html restera toujours visible dans la frame de gauche.

Outre les noms de frames, l'attribut TARGET peut prendre plusieurs autres valeurs :

Conseil Lien vers l'extérieur :

N'hésitez pas à utiliser ces valeurs. Par exemple, pour un lien externe, on appréciera qu'il s'ouvre dans un nouveau navigateur pour pouvoir continuer à naviguer dans votre site.

2.1.6 Décorations :

La balise <FRAME> dispose de quelques attributs qui permettent de modifier son apparence :

Ces marges correspondent au nombre de pixels entre le bord de la frame et son contenu.

2.1.7 Toutes les balises et leurs attributs :

html avancé 2.2

2.2.1 LES FORMULAIRES :

Un formulaire, c'est, à priori, le meilleur moyen de demander des renseignements précis à vos visiteurs. Mais savez-vous concevoir des formulaires efficaces, en utilisant toutes les nuances de ce formidable outil ? Pas sûr. Alors suivez le guide !

2.2.2 Définition :

Un formulaire est une zone de page Web destinée à recevoir des informations de la part des visiteurs. Une fois ces données saisies, l'utilisateur clique sur un bouton du formulaire pour les valider et les envoyer au propriétaire du site.

Un exemple de déclaration de formulaire :

<FORM method=GET action="/cgi-bin/mailer">

[Champs du formulaire]

</FORM>

Comme pour beaucoup d'éléments en HTML, les formulaires sont délimités tout d'abord par une balise générique : <FORM> </FORM> C'est entre ces deux balises que doit être placé l'ensemble des éléments du formulaire.

La balise <FORM> dispose de deux attributs principaux :

Cet attribut indique comment les données du formulaire seront transmises au serveur. Le choix de cette méthode dépend du script utilisé et des informations à transmettre.

A l'intérieur d'un formulaire, on peut entrer différents types de champs. Tous servent à recevoir les informations de vos visiteurs. Ils se divisent en quatre groupes :

Toutes ces balises possèdent un attribut NAME qui permet d'identifier les données saisies par l'utilisateur une fois reçues par le serveur.

Elles possèdent également un attribut TYPE qui permet de différencier les déclinaisons de chaque champ.

2.2.3 Les boutons :

Les boutons sont sans aucun doute les éléments des formulaires les plus simples à utiliser.

Voyons tout de suite comment ils fonctionnent :

<BUTTON name="submit" type="submit"> OK </BUTTON>

<BUTTON name="reset" type="reset"><IMG SRC="mon-image.jpg"></BUTTON>

Entre les balises<BUTTON> et </BUTTON>, on place le texte et les images à afficher à l'intérieur du bouton. La taille du bouton s'adapte automatiquement à son contenu.

La balise <BUTTON> dispose d'un attribut TYPE qui indique l'action associée au bouton. Cet attribut peut prendre les valeurs suivantes :

A l'aide de l'attribut onClick, le bouton peut alors faire appel à une fonction JavaScript précise.

2.2.4 Les zones de texte :

Les zones de texte peuvent être utiles pour saisir les remarques de vos visiteurs ou pour enregistrer leur adresse mail et les abonner à votre liste de diffusion. Deux balises définissent les champs texte.

Exemple :

login : <INPUT TYPE> "texte" NAME="login" SIZE="20"><BR>

Password : <INPUT TYPE="password" NAME="pass" SIZE="20">

Votre commentaire <BR>

<TEXTAREA NAME="commentaire" ROWS="20" COLS="80">

Saisissez votre commentaire ici

</TEXTAREA>

Ici, on utilise les trois types de champs texte disponibles en HTML :

Les attributs ROWS et COLS précisent le nombre de lignes et de colonnes de la zone. Le texte placé entre la balise d'ouverture et de fermeture du champ est affiché dans la zone de texte. Un ascenseur s'affiche automatiquement si le texte saisi est plus long que la zone.

2.2.5 Cases à cocher et boutons radio :

Pour que le visiteur ait le choix entre plusieurs réponses, proposez-lui cases à cocher et boutons radio.

Cases à cocher

Les cases à cocher se présentent sous la forme de "trous" carrés qui s'ornent d'une croix lors de leur validation. Le visiteur peut en cocher plusieurs.

Exemple :

Vous utilisez Internet <BR>

<INPUT TYPE="checkbox" NAME="internet" VALUE="maison">chez vous
<INPUT TYPE="checkbox" NAME="internet" VALUE="travail">au travail
Ces cases sont définies par la balise <INPUT TYPE="checkbox"> qui possède deux attributs :

CONSEIL :

Troupeau de boutons

Toutes les balises d'une même question doivent avoir la même valeur pour l'attribut NAME (qui représente la question) et des valeurs différentes pour l'attribut VALUE (qui représente une réponse en particulier).

Boutons d'option

Contrairement aux cases à cocher, les boutons d'option permettent à l'utilisateur de faire un choix unique entre plusieurs propositions.

Exemple :

<INPUT TYPE="radio" NAME="age" VALUE="18-25"> 18 - 25 ans
< INPUT TYPE="radio" NAME="age" VALUE="26-35"> 26 - 35 ans
<INPUT TYPE="radio" NAME="age" VALUE="26-35"> 36 - 45 ans

Les boutons d'option se définissent donc grâce à la balise <INPUT TYPE="RADIO"> et possèdent les mêmes attributs que les cases à cocher.

2.2.6 Liste de sélections :

Le dernier type de champ disponible dans les formulaires HTML est la liste de sélections dans laquelle l'utilisateur doit faire un choix. Elle se définit grâce à la balise <SELECT>

Exemple :

<SELECT NAME="departement">

<OPTION VALUE="01">Ain

<OPTION VALUE="02">Aisne

<OPTION VALUE="03">Allier

<OPTION VALUE="04">Alpes de Haute Provence

etc.......

</SELECT>

Chaque choix de la liste est défini par une balise <OPTION> distincte. La valeur retournée par ce champ est celle de l'attribut VALUE de l'option sélectionnée. Si la balise n'en possède pas, c'est le texte de l'option lui-même qui est retourné.

L'attribut SIZE de la balise <SELECT> > indique le nombre d'options visibles en permanence dans la liste. Si ce nombre est inférieur au nombre d'éléments de la liste, un ascenseur est affiché automatiquement sur la droite. Si l'attribut SIZE n'est pas spécifié, la liste est présentée sous forme de liste déroulante.

2.2.7 Les balises et leurs attributs :

Toutes ces balises, tous ces attributs, ça fait beaucoup de choses à retenir... Voici un tableau récapitulatif :

 

<FORM>
Définit un nouveau formulaire
METHOD
POST ou GET.
ACTION
URL du script à exécuter.
<INPUT>
Définit un contrôle.
TYPE
Précise le type du contrôle (text, password, radio, checkbox, submit, reset).
VALUE
Précise la valeur par défaut du contrôle s'il peut en recevoir une.
NAME
Indique le nom du contrôle.
SIZE
Précise la taille du contrôle pour les types text et password.
CHECKED
Sélectionne le contrôle par défaut dans le cas de radio ou de checkbox.
<BUTTON>
Crée un nouveau bouton.
TYPE
RESET, SUBMIT ou BUTTON.
NAME
Précise le nom du bouton.
<TEXTAREA>
Définit une zone de texte multiligne.
ROWS
Indique le nombre de lignes de la zone de texte.
COLS
Indique le nombre de colonnes de la zone de texte.
NAME
Indique le nom de la zone de texte.
<SELECT>
Crée une nouvelle liste de sélection
NAME
Indique le nom de la liste de sélection.
<OPTION>
Ajoute une entrée dans la liste de sélection.
VALUE
Précise la valeur de l'entrée.
SELECTED
Indique que l'entrée est sélectionnée par défaut.
CAHIER HTLM