|
| |
| PRATIQUE CLIENTS WEB |
 |
|
 |
| Un menu avec options verticales |
| |
| "En CSS, comment construire un menu déroulant dont les options s'affichent à la verticale ?"
(25/07/2006) |
 |
|
 |
Forum |
|
|
Réagissez
dans les forums
de JDN Développeurs
|
Nous avions déjà abordé la construction d'un menu accompagné de sous-menus à partir d'une liste (lire notre article du 10/06/04). Les sous-menus, comme le menu lui-même, s'affichaient de manière horizontale. Pour les faire s'afficher de manière verticale, tout en conservant le menu horizontal, peu de changements sont nécessaires.
En ajoutant simplement la propriété display: block, nous faisons en sorte que ceux-ci s'affichent non plus l'un à côté de l'autre, comme c'est le cas pour le menu principal par le biais de display: inline, mais bien l'un au-dessus de l'autre, avec retour à la ligne en début et fin de chaque élément.
Par rapport à notre article précédent, les codes HTML et JavaScript ne changent pas, et la nouvelle CSS est comme suit :
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
ul, li {
position: relative;
width: 140px;
}
a {
display: block;
text-decoration: none;
padding: 5px;
}
li ul {
position: absolute;
left: 0;
top: auto;
}
li:hover a, li:hover li a:hover {
color: #fff;
background-color: red;
}
.menu {
position : absolute;
}
.menu ul {
float: left;
width: 140px;
border: 1px solid black;
}
.menu li {
display: inline;
}
.menu a {
text-decoration: none;
color: #000;
}
#menu1, #menu2, #menu3, #menu4 {
position: absolute;
left: 0;
width: 140px;
display: none;
}
Pour fonctionner sous Internet Explorer, cette CSS nécessitera quelques hacks...
Démonstration complète :
|
|
|
 |