Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2266 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Mon menu à 2 niveaux passe mal !!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mon menu à 2 niveaux passe mal !!!

n°522282
Al Batar
Posté le 24-09-2003 à 15:51:21  profilanswer
 

Bonjour à tous !
 
Voila ce sur quoi je travaille en ce moment : un menu à double niveau, façon celui de la page d'accueil de Macromedia : www.macromedia.com...
 
J'ai un code qui commence à ressembler à quelque chose, mais il y a encore quelques défauts :

  • IE5 ne reconnaît pas les propriétés de padding des CSS :??: !!!
  • Mozilla gère les marges différemment d'IE, et considère qu'elles sont extérieures, ce qui entraîne un rendu un peu bizarre...


Pourriez-vous m'aider à y voir un peu plus clair, et/ou me proposer des améliorations ? Merci beaucoup !
 
Voici le code :
 

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript">
  4. <!--
  5. function show(id) {
  6. var e=document.getElementById(id) ;
  7. var i=1 ;
  8. while ((menu=document.getElementById(i)) && (sousMenu=document.getElementById("sousMenu"+i))) {
  9.  if (i==parseInt(id)) {
  10.   menu.style.backgroundColor="orange" ;
  11.   sousMenu.style.visibility="visible" ;
  12.  }
  13.  else {
  14.   menu.style.backgroundColor="navy" ;
  15.   sousMenu.style.visibility="hidden" ;
  16.  }
  17.  i++ ;
  18. }
  19. }
  20. function hide(id) {
  21. var e=document.getElementById(id) ;
  22. e.style.backgroundColor="navy" ;
  23. }
  24. //-->
  25. </script>
  26. <style type="text/css">
  27. <!--
  28. .menu {position : absolute; top : 1px ; right : 1px ;
  29. width : 80% ;
  30. text-align : center ;
  31. font-weight : bold ;
  32. /* border : solid 4px red */}
  33. .ligne1 {border-style : solid ; border-width : 4px ; border-bottom-width : 0px ; border-color : navy ;
  34. color : white ; background-color : navy ;
  35. font-variant : small-caps}
  36. .item1 {display : inline ;
  37. padding-left : 10px ; padding-right : 10px ;
  38. /* border : solid orange 1px ; */
  39. margin-left : 20px ; margin-right : 20px}
  40. .item2 {display : inline ;
  41. padding-left : 10px ; padding-right : 10px ;
  42. margin-left : 10px ; margin-right : 10px ;}
  43. .ligne2 {position : absolute ; top : 100% ;
  44. width : 100% ;
  45. border-style : solid ; border-width : 4px ; border-color : navy ;
  46. color : navy ; background-color : orange ;
  47. padding-bottom : 2px}
  48. .ligne1 span , .ligne2 span {visibility : hidden}
  49. #sousMenu1 {visibility : visible}
  50. #sousMenu2 , #sousMenu3 , #sousMenu4 , #sousMenu5 , #sousMenu6 {visibility : hidden}
  51. -->
  52. </style>
  53. </head>
  54. <body>
  55. <div class="menu">
  56. <!-- La première ligne -->
  57. <div class="ligne1">
  58. <div id="1" class="item1" onmouseover="show(this.id)" style="background-color : orange ;">&nbsp;Menu 1&nbsp;</div>
  59. <div id="2" class="item1" onmouseover="show(this.id)">&nbsp;Menu 2&nbsp;</div>
  60. <div id="3" class="item1" onmouseover="show(this.id)">&nbsp;Menu 3&nbsp;</div>
  61. <div id="4" class="item1" onmouseover="show(this.id)">&nbsp;Menu 4&nbsp;</div>
  62. <div id="5" class="item1" onmouseover="show(this.id)">&nbsp;Menu 5&nbsp;</div>
  63. <div id="6" class="item1" onmouseover="show(this.id)">&nbsp;Menu 6&nbsp;</div>
  64. </div>
  65. <!-- Deuxième ligne : le premier sous menu -->
  66. <div id="sousMenu1" class="ligne2">
  67. <div class="item2">&nbsp;Sous-menu 1 du menu 1&nbsp;</div>
  68. |<div class="item2">&nbsp;Sous-menu 2 du menu 1&nbsp;</div>
  69. |<div class="item2">&nbsp;Sous-menu 3 du menu 1&nbsp;</div>
  70. </div>
  71. <!-- Deuxième ligne : le second sous menu -->
  72. <div id="sousMenu2" class="ligne2">
  73. <div class="item2">&nbsp;Sous-menu 1 du menu 2&nbsp;</div>
  74. |<div class="item2">&nbsp;Sous-menu 2 du menu 2&nbsp;</div>
  75. |<div class="item2">&nbsp;Sous-menu 3 du menu 2&nbsp;</div>
  76. </div>
  77. </div>
  78. </body>
  79. </html>

mood
Publicité
Posté le 24-09-2003 à 15:51:21  profilanswer
 

n°522438
Al Batar
Posté le 24-09-2003 à 18:04:55  profilanswer
 

Up  :bounce:

n°522457
fadenretur​ns
Posté le 24-09-2003 à 18:24:26  profilanswer
 
n°522504
Al Batar
Posté le 24-09-2003 à 19:51:04  profilanswer
 

Sobre et expéditif comme réponse !
 
Quelques remarques, néanmoins :  

  • la largeur du menu est fixe ;
  • si la page s'affiche dans une fenêtre de taille réduite (soit que l'écran soit petit - peu fréquent actuellement - soit que la fenêtre ait été redimensionnée), une partie du menu (à gauche) peut devenir inaccessible...


Néanmoins, ta base est meilleure que la mienne - ne serait-ce qu'à cause de l'emploi de listes : j'avais essayé une structure de ce type, mais sans y parvenir !
 
Je vais donc étudier soigneusement ton code...
 
Merci !
 :hello:

n°522518
Hermes le ​Messager
Breton Quiétiste
Posté le 24-09-2003 à 19:55:30  profilanswer
 

Al Batar a écrit :

Sobre et expéditif comme réponse !
 
Quelques remarques, néanmoins :  

  • la largeur du menu est fixe ;
  • si la page s'affiche dans une fenêtre de taille réduite (soit que l'écran soit petit - peu fréquent actuellement - soit que la fenêtre ait été redimensionnée), une partie du menu (à gauche) peut devenir inaccessible...


Néanmoins, ta base est meilleure que la mienne - ne serait-ce qu'à cause de l'emploi de listes : j'avais essayé une structure de ce type, mais sans y parvenir !
 
Je vais donc étudier soigneusement ton code...
 
Merci !
 :hello:  


 
Concernant ton code JS, sinon, fait des fonctions en français (au lieu de show(id), fait plutôt affiche(id)), ça donne tout de suite bcp plus envie de s'investir et d'aider, sisi.  :)

n°522542
fadenretur​ns
Posté le 24-09-2003 à 20:09:56  profilanswer
 

Al Batar a écrit :

Sobre et expéditif comme réponse !
 
Quelques remarques, néanmoins :  

  • la largeur du menu est fixe ;
  • si la page s'affiche dans une fenêtre de taille réduite (soit que l'écran soit petit - peu fréquent actuellement - soit que la fenêtre ait été redimensionnée), une partie du menu (à gauche) peut devenir inaccessible...


Néanmoins, ta base est meilleure que la mienne - ne serait-ce qu'à cause de l'emploi de listes : j'avais essayé une structure de ce type, mais sans y parvenir !
 
Je vais donc étudier soigneusement ton code...
 
Merci !
 :hello:  


 
Merci, c'est bien gentil. Mais sache que les liste c'est vraiment un galère pas possible. Chaque navigateurs les affiches comme il veut.
 
Ce menu doit marcher un peu partout. Mais je doute que ça marche avec IE5 Mac ... mais comme sa mort est proche.


---------------
mon blog : http://www.magnin-sante.ch/journal/
n°522993
Al Batar
Posté le 25-09-2003 à 10:21:28  profilanswer
 

J'ignorais que l'usage des listes posait tant de problèmes ! Leur gros avantage est néanmoins de préserver la structure des menus, ce qui est bien pour les navigateurs en mode texte ou ceux dont le support JavaScript est désactivé...
 
Ceci dit, j'ai quelques soucis avec la largeur de ton menu : je n'arrive pas (encore) à obtenir quelque chose de potable avec des valeurs en % ...

n°523822
Azzazel
Posté le 26-09-2003 à 11:45:38  profilanswer
 

Citation :


Merci, c'est bien gentil. Mais sache que les liste c'est vraiment un galère pas possible. Chaque navigateurs les affiches comme il veut.
 
Ce menu doit marcher un peu partout. Mais je doute que ça marche avec IE5 Mac ... mais comme sa mort est proche.


 
Je ne rencontre pas de problème particulier avec les listes ... et elles sont en plus sémantiquement plus correctes que les div !
Sous IE5 Mac (quelle horreur ce truc) les listes son assez bien supportées, ce menu :
http://openweb.eu.org/articles/menu_universel/
fonctionne très bien sous la plupart des navigateurs ... y compris IE5 MAc


Message édité par Azzazel le 26-09-2003 à 11:46:13
n°524236
fadenretur​ns
Posté le 26-09-2003 à 19:20:35  profilanswer
 

Azzazel a écrit :

Citation :


Merci, c'est bien gentil. Mais sache que les liste c'est vraiment un galère pas possible. Chaque navigateurs les affiches comme il veut.
 
Ce menu doit marcher un peu partout. Mais je doute que ça marche avec IE5 Mac ... mais comme sa mort est proche.


 
Je ne rencontre pas de problème particulier avec les listes ... et elles sont en plus sémantiquement plus correctes que les div !
Sous IE5 Mac (quelle horreur ce truc) les listes son assez bien supportées, ce menu :
http://openweb.eu.org/articles/menu_universel/
fonctionne très bien sous la plupart des navigateurs ... y compris IE5 MAc


 
Ouais il marche avec IEmac. Mais il sont limités en profondeur et le Javascript est bcp trop compliqué.
 
Et notemment y a des trucs un peu inutil dedans comme les span en display:none. De toute façon les lecteurs d'écran ne les lisent pas.
 
Le menu que j'ai proposé ne fonctionnne pas à cause des CSS mais autrement a le JS joue.
 
Menfin ces tà discuter tout ça.


---------------
mon blog : http://www.magnin-sante.ch/journal/

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Mon menu à 2 niveaux passe mal !!!

 

Sujets relatifs
Le menu deroulant double la hauteur de ligne de mon tableau[Delphi] Stockage d'un mot de passe. [Résolu]
loader & afficher un menu JS avant le reste de la page ?Afficher la source du menu suivant:
[visual c++ 6] pkoi j'ai pas le menu contextuel ???menu htm
Menu déroulant et contenu de la page[menu DOS] ca avance
[PHP] Liste de mots de passe à la con...Menu déroulant, Javascript & CSS, Fonctionne sur un max de nav.
Plus de sujets relatifs à : Mon menu à 2 niveaux passe mal !!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR