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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Bug Menu IE 6 (marche sous FF et IE7)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Bug Menu IE 6 (marche sous FF et IE7)

n°1560187
backdafuck​up
Back to da old skool
Posté le 14-05-2007 à 15:31:59  profilanswer
 

Bonjour à tous (ça fait longtemps que je suis pas venu tiens).
 
Je suis sur un petit os, mais j'ai malheureusement pas trop le temps de galérer dessus, et je commence à être à court de solutions :  
 
Je n'ai pas de page à vous montrer, le résultat est plutot confidentiel.
 
Par contre, j'ai ça :  
 
le HTML

Code :
  1. <script language="javascript" type="text/javascript" src="Composants/_Menu.js"></script>
  2. <div id="MenuHorizontal" onMouseOver="SetNbSubMenu('3');">
  3.     <div class="MenuSeparator">&nbsp;</div>
  4.     <a href="#" id="Link_1" class="LinkLevel1" onMouseOver="HideAll();">Accueil</a>
  5.     <a href="#" id="Link_2" class="LinkLevel1" onMouseOver="HideAll();DispHideSubMenu('2');ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();">Cartes de visite</a>
  6.     <a href="#" id="Link_3" class="LinkLevel1" onMouseOver="HideAll();DispHideSubMenu('3');ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();">Suivi global</a>
  7. </div>
  8. <div style="display: none;" id="Sub_1" class="SubMenu">
  9.     <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 1</a>
  10. </div>
  11. <div style="display: none;" id="Sub_2" class="SubMenu">
  12. <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 1</a>
  13.     <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 2</a>
  14. </div>
  15. <div style="display: none;" id="Sub_3" class="SubMenu">
  16. <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 1</a>
  17.     <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 2</a>
  18.     <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 3</a>
  19.     <a class="LinkLevel2" href="#" onMouseOver="ClearSubMenuTimeOut();" onMouseOut="SubMenuTimeOut();" onClick="HideAll();">Sous-Menu 4</a>
  20. </div>


 
le JS

Code :
  1. var MyTimeOut;
  2.     var NbSousMenu;
  3.     MyTimeOut = '';
  4.     NbSousMenu = 3;
  5.     function SetNbSubMenu(Nombre)
  6.     {
  7.     NbSousMenu = Nombre;
  8.     }
  9.     function DispHideSubMenu(SubMenu)
  10.     {
  11.     document.getElementById('Sub_'+SubMenu).style.display = 'block';
  12.     document.getElementById('Sub_'+SubMenu).style.left = document.getElementById('Link_'+SubMenu).offsetLeft + "px";
  13.     //document.getElementById('Sub_'+SubMenu).style.top = (document.getElementById('Link_'+SubMenu).offsetTop + 30) + "px";
  14.    
  15.     SubMenuTimeOut();
  16.     }
  17.     function HideAll()
  18.     {
  19.     var i;
  20.     for (i = 1; i <= NbSousMenu; i++)
  21.     {
  22.      document.getElementById('Sub_'+i).style.display = 'none';
  23.     }
  24.     /*
  25.      document.getElementById('Sub_1').style.display = 'none';
  26.      document.getElementById('Sub_2').style.display = 'none';
  27.      document.getElementById('Sub_3').style.display = 'none';
  28.      document.getElementById('Sub_4').style.display = 'none';
  29.      document.getElementById('Sub_5').style.display = 'none';
  30.     */
  31.     }
  32.     function SubMenuTimeOut()
  33.     {
  34.     MyTimeOut += ','+setTimeout("HideAll()", 1200);
  35.     }
  36.     function ClearSubMenuTimeOut()
  37.     {
  38.     var TabTimeOut, i;
  39.    
  40.     TabTimeOut = MyTimeOut.split(',')
  41.     for (i=0; i<TabTimeOut.length; i++)
  42.     {
  43.      window.clearTimeout(TabTimeOut[i]);
  44.     }
  45.    
  46.     MyTimeOut = '';
  47.     }


 
et le CSS

Code :
  1. /*
  2. Couleurs Charte :  
  3. #002448 Bleu foncé
  4. #004080 ^
  5. #a6d2ff ^
  6. #cee7ff ^
  7. #ecf5ff Bleu Clair
  8. #57a0cc Gris/Bleu Foncé
  9. #a6cce3 ^
  10. #d1e6f1 ^
  11. #e7f1f8 Gris/Bleu Clair
  12. */
  13. .MenuSeparator
  14. {
  15.     float: left;
  16. }
  17. #MenuHorizontal
  18. {
  19. width: 100%;
  20. height: 30px;
  21. background-color: #2e5072;
  22. border-left: 1px solid #002448;
  23. border-right: 1px solid #002448;
  24.     border-bottom: 1px solid #002448;
  25. padding-top: 1px;
  26. }
  27. #MenuHorizontal .LinkLevel1, .LinkLevel1:visited
  28. {
  29. background-image: url("../images/Menu_Element.jpg" );
  30. background-repeat:no-repeat;
  31. color: #FFFFFF;
  32. text-decoration: none;
  33. position: relative;
  34. padding-top: 6px;
  35. height: 24px;
  36. float: left;
  37. display: block;
  38. width: 130px;
  39. text-align: center;
  40. }
  41. #MenuHorizontal .LinkLevel1:hover
  42. {
  43. background-image: url("../images/Menu_ElementHover.jpg" );
  44. text-decoration: underline;
  45. color: #002448;
  46. /*background-color: #002448;*/
  47. }
  48. #MenuHorizontal .LinkLevel1:active
  49. {
  50. color: #800000;
  51. }
  52. #MenuDate
  53. {
  54. width: 80px;
  55. height: 100%;
  56. float: right;
  57. }
  58. #MenuDate TD
  59. {
  60. font-size: 10px;
  61. vertical-align: middle;
  62. text-align: right;
  63. color: #ffffff;
  64. }
  65. .SubMenu
  66. {
  67. position: absolute;
  68. width: 132px;
  69. background-color: #2e5072;
  70. /*margin-top: 1px;*/
  71. border-bottom: 1px solid #002448;
  72. border-left: 1px solid #002448;
  73. border-right: 1px solid #002448;
  74. text-align: center; /* pour IE6 */
  75. }
  76. .LinkLevel2
  77. {
  78. width: 115px;
  79. max-width: 115px;
  80. position: relative;
  81. display: block;
  82. text-align: left;
  83. padding: 2px;
  84. background-color: #9daaba;
  85. border: 1px solid #002448;
  86. margin-bottom: 4px;
  87. margin-left: auto;
  88. margin-right: auto;
  89. clear: both;
  90. color: #ffffff;
  91. text-decoration: none;
  92. }
  93. .LinkLevel2:hover
  94. {
  95. background-color: #66A8B8;
  96. color: #FFFFFF;
  97. }
  98. .FondSubMenu
  99. {
  100. position: static;
  101. width: 100%;
  102. height: 100%;
  103. border: 1px solid #4D4D4D;
  104. z-index: -1;
  105. }


C'est un menu Horizontal avec sous-menu déroulant.
Le problème est que sous IE 6 (pas testé 5.5, mais à mon avis ça doit faire pareil), les éléments du sous menu, lorsqu'il y en a plus que 2, se décalent sur le hover (c'est la classe LinkLevel2 et le :hover), c'est à dire que la marge saute, comme ça.
 
Dans le js, rien de particulier (je pense). Donc là je ne vois pas vraiment d'ou ça peut venir.
 
Merci d'avance pour votre aide...
 

mood
Publicité
Posté le 14-05-2007 à 15:31:59  profilanswer
 

n°1560279
xtof_83
Freeride Spirit
Posté le 14-05-2007 à 16:49:13  profilanswer
 

Ben dis donc, si le reste du code, ressemble à ça aussi, le projet confidentiel, va au mur :D
 
Pour des jolies menu, qui passe partout :
http://css.maxdesign.com.au/listamatic/index.htm

n°1560341
backdafuck​up
Back to da old skool
Posté le 14-05-2007 à 17:49:07  profilanswer
 

Bah, c'est pas si terrible que ça quand même :D
 
Ya quand même des div et du css, au moins ça... Après c'est pas ultra compliant, mais bon, ça marche... J'ai malheureusement pas trop le temps de faire de l'optimisation.
 
Et non j'irais pas au mur, je sais tout de même un minimum développer ;)
 
Bref, personne pour le bug ?

n°1560406
xtof_83
Freeride Spirit
Posté le 14-05-2007 à 20:00:13  profilanswer
 

C'est vrai que dés qu'on met des div...tout de suite, on se sent plus puissant :o
on devrais coder, que en div, parler que en div...tu penses pas...

n°1560454
backdafuck​up
Back to da old skool
Posté le 15-05-2007 à 08:37:35  profilanswer
 

Ca va finir en débat d'idées ça :D
 
Ce que je veux dire, c'est que j'ai passé l'époque des tableaux.
Faut pas s'enflammer.
 
J'ai pas demander d'avis sur mon code ou sur le site, je demande juste pourquoi sur IE6, sur le hover de mes links, ça bousille les margins (je pense que c'est ça) ou autre chose, et du coup mon lien bouge...
 
Personne n'a une idée ?

n°1560732
backdafuck​up
Back to da old skool
Posté le 15-05-2007 à 16:10:27  profilanswer
 

Bon, j'ai du modifier mon menu, mais j'aimerais bien comprendre quand même...
 
Donc n'hésitez pas
 
:bounce:


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

  Bug Menu IE 6 (marche sous FF et IE7)

 

Sujets relatifs
[Resolu] [XEmacs] Controle-Espace ne marche pasBug sous ie6
[Résolu] Autorun ou menu DVD ?[CSS & Javascript] Bug avec le navigateur Safari
Blabla@Programmation !! Y marche c'ui là (en attendant mieux)menu dyn joomla
Comportement bizarre sous IE7 => bug?Requette qui marche sur une base, mais pas sur l'autre
omment intégrer des onglets, sur un menu dynamique JavascriptBug incopréhension ciblage
Plus de sujets relatifs à : Bug Menu IE 6 (marche sous FF et IE7)


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