Aller au contenu

Bug dans un menu en css avec IE


Sujets conseillés

Posté

Bonjour,

j'ai un petit bug dans mon menu en css, avec IE, lorsqu'un item du menu a un sous-menu (déroulant), et lorsque la souris est sur cet item (hover), l'item d'en dessous descend et le sous-menu déroule (le sous-menu est bien positionné), lorsque la souris quitte, l'item d'en dessous remonte et le sous-menu ferme bien..

Avec firefox c'est parfait..

une âme charitable aurait une idée du problème ?

Voici mon exemple

merci d'avance

-Mess

Posté

IE ne connait le selecteur :hover que sur les éléments <a>.

Il y a plusieurs propositions alternatives en ce moment sur le forum "script et utilitaire".

Sinon tu peux regarder par là, une autre solution est proposée pour combler cette lacune de IE.

Posté

Mes :hover sont aussi sur les <a>

Je ne crois pas que le problème est avec le :hover car les sous-menu s'affichent très bien quand je passe la souris dessus ?

-Mess

Posté

oui, et c'est pour ça qu'il y a du javascript dans mon menu B) ,

<body onload="setHover()">

function hover(obj){
 if(document.all){
   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);
   }
 }
}

comme je le disais, le hover se fait bien (mes sous-menus apparaissent avec IE et Firefox), mais c'est lorsqu'on est avec IE, que les items du menu principal descendent un peu lorsque le sous-menu apparait..

J'avais peut-etre mal expliqué mon problème..

merci quand même

-Mess

Posté

Oups, :blush: , j'avais pas vu...

Bon t'as pas de chance, c'est un autre bug de IE (décidement..). Si tu rajoutes :

#mainmenu li{

border: 1px solid white;

}

Ca marche. Mais çà ne va pas te plaire, vu que tu souhaites ce menu transparent sur ton image. Et IE ne connait pas la valeur transparent à la propriété color.

ps: es tu sûr que le div #menu soit bien nécessaire, vu qu'il ne contient qu'un élément ul (#mainmenu)? Ce dernier suffirait avec les propriétés de son enfant. De même, tous ces id (menu1.....menu11) sont ils bien nécessaires ? Leur propriétés devrait sûrement pouvoir étre définis de manière générique.

Posté (modifié)

Pas de problème !

Merci bien pour l'astuce qui règle le problème,

c'est sûr que ce n'est pas comme je désirais, mais avec un border-bottom de 1px c'est quand même pas si mal,

c'est bizarre quand même, il faut absolument un border-bottom pour que ça reste beau, un border-top ne règle pas plus le problème,

si quelqu'un d'autres a une solution, gênez-vous pas :1eye:

merci beaucoup martin de t'intéresser à mon problème !

-Mess

EDIT: si tu as une idée pour enleve les #menu(N) j'haïrais pas ça !

Modifié par Mess

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...