Bonjour à tous,
j'ai besoin d'un coup de main pour la mise en forme d'une liste que j'utilise pour créer un menu déroulant. Ca fait deux jours que je coince sur un problème assez génant. D'abord je vous explique ce que je veux faire:
Je voudrais créer un menu avec deux premiers niveaux horizontaux, puis les niveaux suivant à la verticale, par exemple:
Menu1 Menu2 Menu3
Menu1.1 Menu1.2
Menu 1.1.1
Menu 1.1.2
Le code source ci dessous fonctionne comme je le souhaite dans Firefox 1.5, mais dans IE 6 la deuxième barre de menu apparait "écrasée" horizontalement et donc sur plusieurs lignes, et c'est illisible.
J'ai mis le javascript avec même si le problème est dans la mise en forme pour que se soit testable directement:
Voilà, si quelqu'un peut m'aider à obtenir le même résultat dans les deux navigateurs, voire même simplement avoir le rendu correct dans IE à la rigueur, çà m'aiderait beaucoup.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 <html> <head> <script type="text/javascript"> function hover(obj){ UL = obj.getElementsByTagName('ul'); if(UL.length > 0){ sousMenu = UL[0].style; if (sousMenu.display == 'none'||sousMenu.display == ''){ sousMenu.display = 'block'; }else{ sousMenu.display = 'none'; } } } function setHover(){ LI = document.getElementById('menu').getElementsByTagName('li'); nLI = LI.length; for(i=0; i < nLI; i++){ LI[i].onmouseover = function(){ hover(this); } LI[i].onmouseout = function(){ hover(this); } } } </SCRIPT> <style type="text/css"> li.horiz { display: block; float: left; padding-right: 0.2em; } ul {list-style:none; margin-left: 0px; padding-left: 0px; display: none; position: absolute; left: 0px; width: 100% } ul#menu{ display: block; position: abxolute; left: 0px; } </style> </head> <body onload="setHover()"> <UL id="menu"> <LI class= "horiz">Item 1 <UL> <LI class= "horiz">Sub Item 1.1 <ul> <LI>Super Sub Item 1.1 <LI>Super Sub Item 1.2 </ul> <LI class= "horiz">Sub Item 1.2 <LI class= "horiz">Sub Item 1.3 </UL> <LI class= "horiz">Item 2 <UL> <LI class= "horiz">Sub Item 2.1 <LI class= "horiz">Sub Item 2.2 </UL> <LI class= "horiz">Item 3 </UL> </BODY> </HTML>
Merci d'avance.
Partager