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 deroulant ne marche pas sous IE6


Sujet :

CSS

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut Menu deroulant ne marche pas sous IE6
    mon menu déroulant ne marche pas sous IE6. Pouvez vous m'aidez

    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
    /**********************************************************
    				STYLES GENERAUX
    **********************************************************/
     
    img { 
    	border: 0; 
    	display: block; 
    }
     
    #logo { 
    	float: left;
    }
     
     
    /***********************************************************
    					MENU HORIZONTAL
    **********************************************************/
     
    #menuHorizon {
    	margin-left: 90px;
    	padding: 0;
    	margin: 0;
     
    }
     
    #menuHorizon li {
    	position: relative;
    	float: left; /* mes les boutons sur la gauche*/
    	list-style: none;
    	font-family: times, Helvetica, sans-serif;
    	text-decoration: none;
    }
     
     
    #menuHorizon li a { /* sous menu of*/
    	display: block;
    	line-height: 25px;/* hauteur de chaques boutons des sous menus*/
    	text-decoration: none;
    	color: green;/* couleur de la police*/
    	width:100%;
    }
     
    #menuHorizon li a:hover{ /* sous menu on*/
    	background-color: black;/* couleur du fond du sous menu en on*/
    	color: pink; /* couleur de la police sous menu en on*/
    } 
     
    #menuHorizon li ul {
    	position: absolute;
    	display: none;
    	left: 0; /* deplace les sous menu vers la droite*/
    	padding: 0;/* marge a l'interieur des sous menus vers les bord*/
    	margin: 0;
    	border: 1px solid #000;
    	background: #fff; /* indiqueras une couleur de fond blanche */
     
    }
     
    #menuHorizon li:hover > ul {
    	display: block;
    }
     
    #menuHorizon li ul li {
    	float: none;
    	width: 170px;/* largeur des sous menu*/
    	border:0px solid #000; /* créeras une bordure noir de 1 px tout autour de chaque lien */
     
    }
     
    #menuHorizon li ul li a {
    width:auto;
    	padding: 0 5px; /* hauteur et largeur de l'ensemble de sous menu*/
    	border:1px solid #000; /* créeras une bordure noir de 1 px tout autour de chaque lien */
     
    }
    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
    <div id="second">
        <a href="index.html"><img id="logo" src="image/emeline_rub.jpg" alt="image/emeline_rub" /></a>
        <ul id="menuHorizon">
              <li class="deroulant" style="width:156px"><a href="presentation.php"><img src="image/presentation_rub_off.jpg" alt="image/presentation_rub_on.jpg" class="rollOver" /></a>            
                <ul>
              	  <li><a href="leurhistoire.php">Leur histoire</a></li>
              	  <li><a href="lesparents.php">Les parents des mariés</a></li>
              	  <li><a href="lestemoins.php">Les témoins</a></li>
              	  <li><a href="enfantshonneurs.php">Les enfants d/'honneurs</a></li>
              	  <li><a href="toffe.php">Toffee</a></li>
                 </ul>
                </li>
     
            	  <li><img src="image/oiseau1_rub.jpg" alt="image/oiseau1_rub"/></li>
     
                <li class="deroulant" style="width:78px"><a href="jourj.php"><img src="image/jourj_rub_off.jpg" alt="image/jourj_rub_on.jpg" class="rollOver" /></a>
                  <ul>
                	  <li><a href="prestataires.php">Les prestataires</a></li>
                	  <li><a href="deroulement.php">Le déroulement</a></li>
                	  <li><a href="voyage.php">Le voyage de noce</a></li>
                	  <li><a href="liste.php">La liste de mariage</a></li>
                 </ul>
                </li>
     
            	  <li><img src="image/oiseau2_rub.jpg" alt="image/oiseau2_rub.jpg"></li>
     
     
                <li class="deroulant" style="width:160px"><a href="infospratiques.php"><img src="image/infospratiques_rub_off.jpg" alt="image/infospratiques_rub_on.jpg" class="rollOver" /></a>
                    <ul>
                  	  <li><a href="commentvenir.php">Comment venir</a></li>
                  	  <li><a href="hebergement.php">Hébergement</a></li>
     
                   </ul>
                </li>
            	  <li><img src="image/oiseau3_rub.jpg"alt="image/oiseau3_rub.jpg"/></li>
     
              <li class="deroulant" style="width:89px"><a href="contact.php"><img src="image/contact_rub_off.jpg" alt="image/contact_rub_on.jpg" class="rollOver" /></a>
     
              </li>
        	  <li><img src="image/oiseau4_rub.jpg"alt="image/oiseau4_rub.jpg"></li>
     
        </div>
    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
    function gebcn(c) {
     
    	if (document.getElementsByClassName) {
    		return document.getElementsByClassName(class);
    	}
    	else {
    		var all = document.getElementsByTagName("*"),
    		res = [];
    		for (var i=0,l=all.length;i<l;i++) {
    			if (all[i].className == class) {
    				res.push(all[i]);
    			}
    		}
    		return res;
    	}
    }
     
    sfHover = function() {
    	var sfEls = gebcn("deroulant");
     
    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover = function() {
    			this.getElementsByTagName("ul")[0].style.display = "block";
    		};
    		sfEls[i].onmouseout = function() {
    			this.getElementsByTagName("ul")[0].style.display = "none";
    		};
    	}
    };
     
     
    window.onload = function() {
    	var imgs = document.getElementsByTagName('img');
     
    	for (var i = 0; i < imgs.length; i++)
    	{
    		if (imgs[i].className == 'rollOver')
    		{
    			imgs[i].onmouseover = (function() { var a = this.src; this.src = this.alt; this.alt = a; });
    			imgs[i].onmouseout = (function() { var a = this.src; this.src = this.alt; this.alt = a; });
    			imgs[i].className = '';
    		}
    	}
    	sfHover();
    	Galery('toffe');
    };
    on m'a dit que le problème viendrai de mon css
    en tut cas merci d'avance de votre aide

  2. #2
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Bonjour,

    Citation Envoyé par gaya102 Voir le message
    on m'a dit que le problème viendrai de mon css
    Oui,

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #menuHorizon li:hover > ul {
    	display: block;
    }

    Le sélecteur d'enfants directes ">" n'est pas reconnu par IE6-, ton menu reste alors en display:none;

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Je crois que "li:hover" ne fonctionne pas non plus sous IE... (seulement avec "a")

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par devyan Voir le message
    Je crois que "li:hover" ne fonctionne pas non plus sous IE... (seulement avec "a")
    Oui, aussi.
    De toute manière, l'utilisation du sélecteur d'enfants directes pour modifier le comportement de <ul> montre l'intention d'exclure IE6-

  5. #5
    Membre chevronné Avatar de desert
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 414
    Par défaut
    Bonjour,
    Ce sélecteur ne marche pas sous IE6, d'où l'utilisation du script JS, pour pallier au problème. Si le code JS ne marche pas, c'est qu'il y a une/des erreur(s) dedans.
    Sans rechercher à corriger l'ancien, celui-ci devrait normalement fonctionner :
    Code javascript : 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
    window.onload = function() {
        var menu = document.getElementById("menuHorizon");
        var sfEls = menu.getElementsByTagName("li");
        for (var i=0; i<sfEls.length; i++) {
            if (sfEls[i].className == "deroulant") {
                sfEls[i].onmouseover = function() {
                    var uls = this.getElementsByTagName("ul");
                    if (uls.length > 0) {
                        uls[0].style.display = "block";
                    }
                    var imgs = this.getElementsByTagName("img");
                    if (imgs.length > 0) {
                        var img = imgs[0];
                        var tmp = img.src; img.src = img.alt; img.alt = tmp;
                    }
                };
                sfEls[i].onmouseout = function() {
                    var uls = this.getElementsByTagName("ul");
                    if (uls.length > 0) {
                        uls[0].style.display = "none";
                    }
                    var imgs = this.getElementsByTagName("img");
                    if (imgs.length > 0) {
                        var img = imgs[0];
                        var tmp = img.src; img.src = img.alt; img.alt = tmp;
                    }
                };
            }
        }
    };
    PS: Au niveau CSS, il faut changer le auto de la propriété width des liens des sous-menus par ceci :
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #menuHorizon li ul li a {
    	width: 158px;
    	padding: 0 5px; /* hauteur et largeur de l'ensemble de sous menu*/
    	border: 1px solid #000; /* créeras une bordure noir de 1 px tout autour de chaque lien */
    }
    qui donne le layout aux liens (ce n'est pas le cas avec width:auto) et permet corriger un bug.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    ca y est ca marche et sans erreur de script en plus. je suis trop contente car ca fais 3 semaines que j'avais se problème.
    Merci Merci vous etes top

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Par défaut
    pour que ça marche sans js sous ie6
    http://bormat2.free.fr/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Menu déroulant ne marche pas sous IE
    Par comode dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 11/10/2010, 15h35
  2. unserialize ne marche pas sous IE6 ?
    Par xclam dans le forum Langage
    Réponses: 1
    Dernier message: 26/09/2008, 13h51
  3. color transparent! marche pas sous IE6 => alternative?
    Par kleenex dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 01/03/2008, 12h09
  4. URGENT : Request.Form ne marche pas sous IE6
    Par Laurent Outan dans le forum ASP
    Réponses: 9
    Dernier message: 16/07/2004, 15h25

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