Mess Posté 14 Octobre 2004 Posté 14 Octobre 2004 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
martin© Posté 14 Octobre 2004 Posté 14 Octobre 2004 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.
Mess Posté 14 Octobre 2004 Auteur Posté 14 Octobre 2004 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
martin© Posté 14 Octobre 2004 Posté 14 Octobre 2004 tiré de ta css : ul#mainmenu li:hover>ul{ display:block;} D'ailleurs IE ne connait pas non plus le selecteur d'enfant (>).
Mess Posté 14 Octobre 2004 Auteur Posté 14 Octobre 2004 oui, et c'est pour ça qu'il y a du javascript dans mon menu , <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
martin© Posté 15 Octobre 2004 Posté 15 Octobre 2004 Oups, , 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.
Mess Posté 15 Octobre 2004 Auteur Posté 15 Octobre 2004 (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 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é 15 Octobre 2004 par Mess
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant