javascript, javascripts, js, jscript, scripts, script, html, dhtml, dynamic, cookies, menu, frames, formulaire, source, code, gratuit, exemple, developper, html, php4, php3, php, mysql, liens, php2, forum, livre d'or, pages, web, dynamiques, programmation, webmasters, webmestres, tutorial, tutoriel, annuaires, espace, membres, banniéres, caddies, chats, compteurs, formulaires, forums, gestion, documentations, news, mailing, list, newsletter, moteurs, recherche, sondages, votes, statistiques, autres, agendas, calendriers, mail, annonces, audio, outils, réseaux, graphique, recommandation, site, sécurité, portail, creation, actualité, moteur de recherche, moteur, trucs, astuces, services, flash, action script, actionscript Tutoriaux : Javascript
Script Masters : Javascript, Php, Mysql, html pour Webmasters!
 
    Script Masters
 
    Espace membre
 
    Langages
 
    Autres ressources
 
    Ressources graphiques
 
    Recherche
 
    Kit graphique
 
    Liens
 
    Statistiques


 


Télécharger les sources de cet article


Untitled Document
Menu déroulant dynamique vertical en DHTML - Partie 1


Tutorial écrit par : Daniel Fabien - Script Masters

 

   Introduction

 

 

Le tutorial suivant est le premier d’une série en trois parties qui vous permettront de développer un menu dynamique en DHTML. Plusieurs points intéressant seront abordés tels que l’écriture d’un tableau en HTML, l’utilisation des feuilles de styles pour sa mise en forme, l’effet d’apparition et de disparition des sous-menus, un effet de rollover sur les cellules d’un tableau ou bien encore le changement dynamique d’une image.

Tout ceci devrait vous amenez à obtenir le menu suivant :

Titre 1
Titre 2

Pour ceux qui souhaitent consulter cette série de tutoriaux hors ligne, il est possible de télécharger l’archive qui contient toutes les explications en un seul fichier qui est au format imprimable, mais aussi le script complet du menu que vous avez sous les yeux. Pour cela, cliquez sur le lien « télécharger les sources de cet article ».

Sur ce, je vous souhaite une bonne lecture !


   1ere étape : dessiner le menu


Avant de commencer à développer un menu dynamique en DHTML, il faut dans un premier temps dessiner une esquisse en HTML de ce que nous souhaitons obtenir. Cette étape est très importante et il est nécessaire de respecter un certains nombres de contraintes.

Tableau en HTML

Ici nous décidons d’utiliser une technique simple de création de menu. Pour le concevoir, nous allons cacher, à l’aide d’un élément de style que nous verrons plus tard, les lignes d’un tableau. Mais avant d’aller plus loin, il est sans doute nécessaire de rappeler de quelle manière est constitué un tableau html. Voici un tableau banal afin de bien comprendre le fonctionnement.

Fig. 1.1 : Code html d’un tableau

<table>
 <tr>
  <td>Ligne 1 : colonne 1</td>
  <td>Ligne 1 : colonne 2</td>
 </tr>
 <tr>
  <td>Ligne 2 : colonne 1</td>
  <td>Ligne 2 : colonne 2</td>
 </tr>
</table>

Ce qui permet d’obtenir :

Ligne 1 : colonne 1 Ligne 1 : colonne 2
Ligne 2 : colonne 1 Ligne 2 : colonne 2

Le principe est simple :
- Vous déclarez votre tableau entre les balises <table></table>
- Vous déclarez une nouvelle ligne entre les balises <tr></tr>
- Vous déclarez une nouvelle colonne entre les balises <td></td>

Mais attention, chacune de ces balises sont nécessaires pour afficher correctement votre tableau. Ainsi, si vous possédez une seule ligne à votre tableau, vous devez tout de même la déclarer entre les balises <tr></tr>.

 

Le tableau de votre menu

Le menu que nous souhaitons développer sera vertical et aura une largeur de 200 pixels. Aussi, il nécessitera plusieurs lignes et une seule colonne. Pour ce faire, nous allons reprendre le principe vu précédemment :

Fig. 1.2 : Code html du menu
<table width="200" cellspacing="1" cellpadding="0">
 <tr>
  <td>Titre 1</td>
 </tr>
 <tr>
  <td>Espace réservé aux sous-titre 1</td>
 </tr>
 <tr>
  <td>Titre 2</td>
 </tr>
 <tr>
  <td>Espace réservé aux sous-titre 2</td>
 </tr>
</table>

Ce qui permet d’obtenir :

Titre 1
Espace réservé aux sous-titre 1
Titre 2
Espace réservé aux sous-titre 2

Vous remarquerez que nous avons ajouté trois attributs à la balise <table> : « width », « cellspacing » et « cellpadding ». Pour les curieux, voici une description de chacun d’entre eux :
- width : Permet de définir la largeur du tableau. Par défaut celle-ci est exprimée en pixel. Vous pouvez également la définir en pourcentage à l’aide du symbole « % ». Nous lui donnons donc la valeur de 200 pixels0
- cellspacing : C’est la quantité d’espace vide entre les bords extérieur de chaque cellule du tableau. Comme nous souhaitons obtenir un petit liseré vide ente chaque cellule, nous lui donnons la valeur de 1 pixel.
- cellpadding : C’est la quantité d’espace vide entre le bord de la cellule et le contenu de celle-ci. Afin d’utiliser au mieux cet espace, nous lui donnons une valeur nulle.

 

Le tableau des sous menu

Vous avez sans doute remarqué dans le tableau précédent, la mention « Espace réservé aux sous-titre n ». Nous allons remplacer cette mention par un nouveau tableau contenant tout les titres de sous-menus :

Fig. 1.3 : Code html d’un sous-menu
<table width="200" cellspacing="0" cellpadding="0">
<tr>
<td>- Sous-Titre 1.1</td>
</tr>
<tr>
<td>- Sous-Titre 1.2</td>
</tr>
</table>

Ce qui permet d’obtenir ceci si on remplace les mentions du tableau précédent :

Titre 1
- Sous-Titre 1.1
- Sous-Titre 1.2
Titre 2
- Sous-Titre 2.1
- Sous-Titre 2.2

 

Améliorer son design

Bien évidement, l’allure du menu est pour l’instant très basique. Nous allons améliorer celui-ci en définissant quelques styles css :

Fig. 1.4 : Feuille de style du menu
<style type="text/css">
td.titre {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #000000;
background-color: #959EAD;
cursor: hand
}

td.soustitre {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #000000;
background-color: #C3C9D4;
cursor: hand
}
</style>

Pour bien comprendre les styles css, aidez-vous du tutorial qui se trouve à cette adresse :
http://www.script-masters.com/home/tutorial_html-html_fichiercss.html

Le principe est très simple. Nous avons décidé de bien mettre en évidence la différence entre les titres des menus et les sous-titres des sous-menus. Pour ce faire, on définit une class titre et une seconde class soustitre qui définisse l’allure générale des cellules appellant ces class.
Voici les propriétés déclarées :
- La police utilisée (Verdana dans les deux cas)
- La taille de police en pixels
- La couleur de la police (noir dans les deux cas)
- La couleur de fond.
- Le curseur se transforme en main au passage de la souris (IE seulement)

Comme vous pouvez l’apprendre dans le tutorial sur les feuilles de styles, pour que ces changements soient pris en compte, il faut les appeler à l’aide de l’attribut « class ». Par exemple :

Fig. 1.5 : Utilisation de la feuille de style
<table>
<tr>
<td class= ‘titre’>Cellule prenant l’allure définit par le style titre</td>
</tr>
</table>

Nous allons donc utiliser ce principe afin de mettre en forme notre ersatz de menu. On obtient alors le code suivant :

Fig. 1.6 : Récapitulatif
<table width="200" border="0" cellspacing="1" cellpadding="0">
<tr>
<td class="titre">Titre 1</td>
</tr>
<tr>
<td><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="soustitre">- Sous-Titre 1.1</td>
</tr>
<tr>
<td class="soustitre">- Sous-Titre 1.2</td>
</tr>
</table></td>
</tr>
<tr>
<td class="titre">Titre 2</td>
</tr>
<tr>
<td><table width="200" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="soustitre">- Sous-Titre 2.1</td>
</tr>
<tr>
<td class="soustitre">- Sous-Titre 2.2</td>
</tr>
</table></td>
</tr>
</table>

Ce qui permet d’obtenir notre menu comme si il était totalement déroulé (et bien sûr statique). Voici à présent ce à quoi il ressemble :

Titre 1
- Sous-Titre 1.1
- Sous-Titre 1.2
Titre 2
- Sous-Titre 2.1
- Sous-Titre 2.2

Nous venons de cette manière de définir l’allure générale de notre menu. Dans la prochaine étape, nous allons préparer le terrain pour le rendre dynamique. Pour cela, il faudra cacher les sous menus et détecter les navigateurs utilisés afin de le rendre compatible avec un maximum de navigateur.

Cliquez ici pour lire la suite de ce tutorial...

 

- Un problème? Posez vos questions sur le forum Javascript!
- Ce tutorial a été consulté 36239 fois


Script Masters © Ce texte est la propriété de son auteur.
Toute reproduction est interdite.

 




 
Votre nom de domaine est-il libre?
 
Fabien Daniel - fd-web.net © 2001-2008 | Hebergement : OVH | CNIL : 796128