Créer votre menu vertical avec une liste et du CSS
Date de publication : 08/01/2008
Par
Rodrigue Hunel (Site perso)
Cet article a pour but de vous montrer comment créer un menu vertical à
partir d'une liste non numérotée de liens.
I. Introduction
II. Création de la liste en (X)HTML
III. Création du menu avec CSS
III-A. La liste ul - li
III-B. Les liens
IV. Code complet
V. Pour aller plus loin
IV-A. Utilisation de la pseudo-classe link
IV-B. Utilisation de la pseudo-classe visited
IV-C. Utilisation de la pseudo-classe hover
IV-D. Utilisation de la pseudo-classe active
V-E. Code CSS complet
VI. Conclusion
V-A. Remerciements
V-B. Liens
I. Introduction
Au cours de ce tutoriel, nous verrons comment créer, à partir
d'une simple liste de liens, un menu vertical avec les propriétés
CSS
qui sont à notre disposition et compatibles sur tous les récents
navigateurs (IE6, IE7, Firefox, Safari, Opéra).
Notre but, ici, sera d'obtenir un menu ayant la même apparence que
celui-ci :
II. Création de la liste en (X)HTML
En (X)HTML, il existe plusieurs solutions pour créer une liste de
liens, notamment :
- Les listes non numérotées : ul - li ;
- Les listes numérotées : ol - li ;
- Les listes de définitions : dl - dt - dd ;
- et éventuellement l'utilisation de balises div.
Mais dans notre cas, nous utiliserons une liste non numérotées car
ce sont les plus courantes et elles correspondent à nos attentes.
Nous aurons donc le code (X)HTML suivant :
| Code (X)HTML de la liste de liens |
<ul>
<li><a href="#accueil">Accueil</a></li>
<li><a href="#r1">Rubrique 1</a></li>
<li><a href="#r2">Rubrique 2</a></li>
<li><a href="#r3">Rubrique 3</a></li>
<li><a href="#r4">Rubrique 4</a></li>
</ul>
|
III. Création du menu avec CSS
Par conséquent pour obtenir le résultat voulu, nous devons
utiliser des propriétés CSS afin de personnaliser notre liste et
d'avoir notre menu.
III-A. La liste ul - li
Pour personnaliser notre liste, il va falloir lui attribuer
un style. Il nous faut donc modifier notre code (X)HTML afin
que ce soit pris en compte et dont l'effet soit uniquement
appliqué à notre menu. Le nouveau code est donc :
| Code (X)HTML |
<ul id="menu">
<li><a href="#accueil">Accueil</a></li>
<li><a href="#r1">Rubrique 1</a></li>
<li><a href="#r2">Rubrique 2</a></li>
<li><a href="#r3">Rubrique 3</a></li>
<li><a href="#r4">Rubrique 4</a></li>
</ul>
|
Il nous reste plus qu'à retirer la marge extérieure et intérieure
de notre élément ul et à personnaliser sa bordure.
| Code CSS de l'élément ul |
ul#menu
{
margin : 0;
padding : 0;
width : 300px;
font-size : 1.2em;
border : 1px solid #39C;
}
|
Pour finir, on définit le type des puces de notre liste.
| Code CSS des éléments li |
ul#menu li
{
list-style-type : none;
margin-bottom : 1px;
}
|
Maintenant, il nous reste plus qu'à personnaliser les liens.
III-B. Les liens
Suite au précédent paragraphe, il nous faut donner de la
couleur à nos liens dans le but d'avoir notre résultat final.
Par conséquent, nous allons définir le style CSS qui s'y
rapporte.
| Code CSS des liens |
ul#menu li a
{
width : auto !important;
width : 100%;
padding : 4px;
text-decoration : none;
color : #39C;
display : block;
background-color : #F5FBFF;
border : 1px solid #3399CC;
border-left-width : 4px;
}
|
 |
L'ordre de définition des bordures est à respecter. Si l'on change
cet ordre nous n'aurons pas le résultat tant attendu mais un
menu avec qu'une simple bordure de 1px.
|
IV. Code complet
Pour obtenir ce résultat, on a donc utilisé le code qui suit
| Code (X)HTML complet |
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Liens personnalisés</title>
<style type="text/css">
@import 'style.css';
</style>
</head>
<body>
<ul id="menu">
<li><a href="#accueil">Accueil</a></li>
<li><a href="#r1">Rubrique 1</a></li>
<li><a href="#r2">Rubrique 2</a></li>
<li><a href="#r3">Rubrique 3</a></li>
<li><a href="#r4">Rubrique 4</a></li>
</ul>
</body>
</html>
|
| Code CSS complet |
ul#menu
{
margin : 0;
padding : 1px 1px 0;
width : 300px;
font-size : 1.2em;
border : 1px solid #39C;
}
ul#menu li
{
list-style-type : none;
margin-bottom : 1px;
}
ul#menu li a
{
width : auto !important;
width : 100%;
padding : 4px;
text-decoration : none;
color : #39C;
display : block;
background-color : #F5FBFF;
border : 1px solid #3399CC;
border-left-width : 4px;
}
|
V. Pour aller plus loin
Le menu obtenu précédemment est bien conforme à nos attentes,
mais nous pouvons aller plus loin en le personnalisant un peu
plus avec les pseudo-classes :
- link
- visited
- hover
- active
 |
Je tiens à préciser que l'utilisation de toutes ces pseudo-classes
n'est pas une obligation. C'est à vous d'adapter votre code selon
vos besoins.
|
 |
L'ordre de définition de ces pseudo-classes doit être identique à
celui énoncé plus haut. En effet, si vous les définissez n'importe
comment, certains effets ne seront pas obtenus. Pour vous rappeler
l'ordre de définition, il suffit de mémoriser les initiales LVHA
(Link, Visited, Hover, Active).
|
IV-A. Utilisation de la pseudo-classe link
Cette pseudo-classe permet d'attribuer un style particulier
à un lien non visité.
Dans notre cas, nous modifierons notre CSS afin de remplacer
le code général des liens par celui-ci.
| Code CSS des liens |
ul#menu li a
{
width : auto !important;
width : 100%;
padding : 4px;
text-decoration : none;
display : block;
}
ul#menu li a:link
{
color : #39C;
background-color : #F5FBFF;
border : 1px solid #3399CC;
border-left-width : 4px;
}
|
Nous obtenons le même
résultat
que le code du paragraphe
Les liens
sauf qu'une fois que l'on aura cliqué sur l'un d'entres eux
nous aurons une couleur non défini dans notre code.
Pour éviter cet effet, il faut utiliser les autres
pseudo-classes.
IV-B. Utilisation de la pseudo-classe visited
Cette pseudo-classe permet d'attribuer un style particulier
à un lien visité (qui a été cliqué un peu plus tôt).
On peut, par exemple, leur donner une couleur orange, de la
manière suivante :
| Code CSS des liens |
ul#menu li a:visited
{
color : #FFA407;
background-color : #FFF9AA;
border : 1px solid #FFA407;
border-left-width : 4px;
}
|
Une fois ce code rajouté, on peut
voir
que nos différents liens visités ont une couleur bien orange.
IV-C. Utilisation de la pseudo-classe hover
Cette pseudo-classe permet d'attribuer un style particulier
au survol d'un lien.
Ici, on leur donnera, par exemple, une couleur verte.
| Code CSS des liens |
ul#menu li a:hover
{
color : #993;
background-color : #f4fbdc;
border : 1px solid #993;
border-left-width : 4px;
}
|
IV-D. Utilisation de la pseudo-classe active
Cette pseudo-classe permet d'attribuer un style particulier
à un lien lors du clic.
Ici, on leur donnera, par exemple, une couleur jaune.
| Code CSS des liens |
ul#menu li a:active
{
color : #FFC300;
background-color : #FDFFA5;
border : 1px solid #FFC300;
border-left-width : 4px;
}
|
V-E. Code CSS complet
| Code CSS complet avec définition des pseudo-classes |
ul#menu
{
margin : 0;
padding : 1px 1px 0;
width : 300px;
font-size : 1.2em;
border : 1px solid #39C;
}
ul#menu li
{
list-style-type : none;
margin-bottom : 1px;
}
ul#menu li a
{
width : auto !important;
width : 100%;
padding : 4px;
text-decoration : none;
display : block;
}
ul#menu li a:link
{
color : #39C;
background-color : #F5FBFF;
border : 1px solid #3399CC;
border-left-width : 4px;
}
ul#menu li a:visited
{
color : #FFA407;
background-color : #FFF9AA;
border : 1px solid #FFA407;
border-left-width : 4px;
}
ul#menu li a:hover
{
color : #993;
background-color : #f4fbdc;
border : 1px solid #993;
border-left-width : 4px;
}
ul#menu li a:active
{
color : #FFC300;
background-color : #FDFFA5;
border : 1px solid #FFC300;
border-left-width : 4px;
}
|
VI. Conclusion
Cet article nous a montré que l'on peut très bien réaliser un
menu vertical avec une liste de liens qu'avec du CSS. Le
JavaScript n'est pas indispensable pour apporter des effets de
survol ou lors du clic.
V-A. Remerciements
V-B. Liens


Les sources présentées sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©
08/01/2008 Rodrigue Hunel. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.