IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Menu css : problème au passage du curseur sur le menu avec Internet Explorer 7


Sujet :

CSS

  1. #1
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut Menu css : problème au passage du curseur sur le menu avec Internet Explorer 7
    Bonjour à tous,
    je développe actuellement un site utilisant un menu css. Je rencontre des problème quand au déroulement du menu avec internet explorer :

    -IE 6 : le menu se déroule normalement, mais décalage de quelques pixels.

    -IE 7 : il est nécessaire de devoir être sur le titre du menu,
    le menu ne se déroule pas si on est dans la case du menu (dans la case mais pas sur le titre).
    Pour afficher le menu, le curseur doit donc être impérativement sur le titre du menu. Dès que le curseur n'est plus sur le titre, les rubriques disparaissent, ce qui empêche d'accéder aux rubriques.


    -IE 8 : le menu fonctionne correctement.

    Voici le code du menu css :
    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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    #menu, #menu ul /* Liste */     
    {
            padding : 0; 
            margin : 0; 
            list-style : none; 
            line-height : 21px; 
            text-align : center; 
    }
     
    #menu /* Ensemble du menu */
    {
     
    	margin-left:30px;
     
    	margin-top:50px;/*pour separer titre (et logo) du menu*/
     
    	/*padding-bottom:90px;		*/
     
            font-weight : bold; 
            font-family : Arial; 
            font-size : 12px; 
    }
     
    #menu a /* Contenu des listes */
    {
            display : block; /* on change le type d'élément, les liens deviennent des balises de type block */
            padding : 0; /* aucune marge intérieure */
            color : #fff; /* couleur du texte */
            text-decoration : none; /* on supprime le style par défaut des liens (la plupart du temps = souligné) */
     
    	/*
    	PARAMETRES A AJUSTER
    	*/
     
    	background : #27314a ;/* couleur de fond #BA9F5A */        
    	width : 100px; /* largeur  modifie origine 140px*/
    	height :40px;/*la hauteur des elements du menu 40px*/
    }
     
    #menu li /* Elements des listes */      
    { 
            float : left; 
            /* pour IE qui ne reconnaît pas "transparent" */
            border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
    height :auto;
    }
     
     
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li
    {
            border-right: 1px solid transparent ; /* on met une bordure transparente à droite de chaque élément */
    }
     
    #menu li ul /* Sous-listes */
    { 
            position: absolute; /* Position absolue */
            width: 144px; /* Largeur des sous-listes 144*/
            left: -999em; /* Hop, on envoie loin du champ de vision */
    }
     
    #menu li ul a { /*surcharge de l attribut en auto*/
    	height: auto;
    }
     
    #menu li ul li /* Éléments de sous-listes */
    {
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-top : 1px solid #fff; /* on met une bordure blanche en haut de chaque élément d'une sous liste */
     
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" */
    html>body #menu li ul li                
    {
            border-top : 1px solid transparent; /* on met une bordure transparente en haut de chaque élément */
    }
     
    #menu li ul ul 
    {
            margin    : -42px 0 0 100px ; 
     
            /* pour IE qui ne reconnaît pas "transparent" (comme précédemment) */
            border-left     : 1px solid #fff ; /* Petite bordure à gauche pour ne pas coller ... */      
    }
     
    /* IE ne reconnaissant pas le sélecteur ">" ... je me répète ;-) */
    html>body #menu li ul ul                
    {
            border-left     : 1px solid transparent ; /* on met une bordure transparente sur la gauche de chaque élément */
    }
     
    #menu a:hover /* Lorsque la souris passe sur un des liens */    
    {
            color: #000; /* On passe le texte en noir... */
            background: #fff; /* ... et au contraire, le fond en blanc */
    }
     
    #menu li:hover ul ul, #menu li.sfhover ul ul /* Sous-sous-listes lorsque la souris passe sur un élément de liste */
    {
            left: -999em; /* On expédie les sous-sous-listes hors du champ de vision */
    }
     
     
    #menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul  /* Sous-listes lorsque la souris passe sur un élément de liste ET sous-sous-lites lorsque la souris passe sur un élément de sous-liste */
    {
            left: auto; /* Repositionnement normal */
            min-height: 0; /* Corrige un bug sous IE */
    }
    et voici un exemple de code html utilisé avec ce menu :

    Code html : 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
    <html>
    <ul id="menu">
     
    <li>
                    <a href="#">accueil</a>
            </li>
     
            <li>
                    <a href="#">membres</a>
                    <ul>
                            <li><a href="#">connexion</a></li>
                            <li><a href="#">inscription</a></li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">images</a>
                    <ul>
                            <li>
                                    <a href="#">photos</a>
                                    <ul>
                                            <li><a href="#">catégorie 1</a></li>
                                            <li><a href="#">catégorie 2</a></li>
                                    </ul>
     
                            </li>
                            <li>
                                    <a href="#">vidéos</a>
                            </li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">téléchargements</a>
                    <ul>
                            <li><a href="#">vidéos</a></li>
                            <li><a href="#">musiques</a></li>
                    </ul>
            </li>
     
            <li>
                    <a href="#">plus</a>
                    <ul>
                            <li><a href="#">forum</a></li>
                            <li><a href="#">liens</a></li>
                            <li><a href="#">nous contacter</a></li>
                            <li><a href="#">team</a></li>
                            <li><a href="#">recherche</a></li>
                    </ul>
            </li>
     
    </ul>
    </html>

    Si quelqu'un a une idée, je suis preneur, surtout pour internet explorer 7 !
    merci d'avance
    cordialement
    benilto

  2. #2
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    Salut benilto !

    Avec ton modèle et ton style, les sous-menus ne s'affichent pas du tout chez moi sous IE6/7. Mais ça fonctionne sous FF.

    Je regarderais un peu plus tard, si j'ai le temps.

    Bon aprèm,
    Thomas.

  3. #3
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    D'après la liste des bugs d'IE6, la propriété :hover ne fonctionne qu'avec les balises liens.

    Donc c'est normal, qu'en état, ça ne marche pas sous IE6.

    Bon après-midi,
    Thomas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 308
    Points : 349
    Points
    349
    Par défaut
    Bonjour,

    ton probleme viens d'un bug classique de Avoir le layout - Le concept de hasLayout dans IE/Win sur les élément flottant, qui peut se corrigé en ajoutant la mention overflow:hidden; tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #menu li {
      float:left;
      overflow:hidden;
    }
    Cordialement,

  5. #5
    Membre averti
    Avatar de tzilliox
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 153
    Points : 398
    Points
    398
    Par défaut
    Salut benilto !

    As-tu résolu ton problème ?

    Concernant le fonctionnement de la propriété hover, tu peux lire ce thread qui a l'air de contenir une solution en javascript pour contenir le problème.

    Bonne journée,
    Thomas.

  6. #6
    Membre confirmé Avatar de ben.IT
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 431
    Points : 486
    Points
    486
    Par défaut
    Salut Ethyde
    Merci de ta réponse !
    J'ai inséré overflow:hidden; comme tu le disais dans ton post.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #menu li /* Elements des listes */      
    { 	
     
            float : left; 
    		overflow:hidden;
            /* pour IE qui ne reconnaît pas "transparent" */
            border-right : 1px solid #fff; /* on met une bordure blanche à droite de chaque élément */
    		height :auto;
    }
    Résultat : il faut toujours être sur le texte pour voir la sous liste s'afficher.
    De plus, lorsque la sous-liste s'affiche, tous les éléments de celle-ci sont désorganisés :
    Nom : resultat.jpg
Affichages : 117
Taille : 67,9 Ko

    Merci d'avance

    Benilto

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2009, 19h14
  2. Réponses: 7
    Dernier message: 31/07/2008, 08h31
  3. Problème de passage de pistes sur player flash
    Par donfino dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 30/12/2007, 18h32
  4. Problème affichage form avec Internet Explorer dans un menu
    Par dupard2006 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/03/2006, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo