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 déroulant avec width à 100% incompatible sous IE 7 & IE6


Sujet :

CSS

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Points : 45
    Points
    45
    Par défaut Menu déroulant avec width à 100% incompatible sous IE 7 & IE6
    Bonjour

    J'ai réalisé un menu déroulant pour lequel je mets une width à 100% sur la li afin que la largeur s'adapte en fonction du contenu. Mais le problème c'est que sur IE 6 et IE7 cela me décale tout alors que sous FF cela marche à merveille. Par contre si je mets une largeur fixe mes problèmes sont résolus mais je veux pouvoir faire une sous menu dynamique

    Quelqu'un a une petite idée?? Merci de votre aide

    Voici mon code 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
     
    ul#menu_principal ul.sousmenu {
      border: 0;
      position:absolute;
      z-index: 5;
      padding: 5px 0px 0px 0px;
      text-transform:none;
      display:none;
      margin-left:0px;
    }
     
    ul#menu_principal ul.sousmenu li {
      background: none;
      border: 0;
      display: block;
      clear: both;
      float:left;
      /*width:100%;*/
      width:200px;
    }

  2. #2
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Le code que tu indiques n'est, j'espère, pas l'entièreté de ton menu!

    Poste-nous l'HTML et la totalité des classes associées au menu, ainsi que le Javascript si tu en utilises... Tu auras plus de chance d'avoir une réponse!

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    voici mon 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
     
     
    ul#menu_principal ul.sousmenu {
      border: 0;
      position:absolute;
      z-index: 5;
      padding: 5px 0px 0px 0px;
      text-transform:none;
      display:none;
      margin-left:0px;
     
    width:auto;
    }
     
    ul#menu_principal ul.sousmenu li {
      background: none;
      border: 0;
      float:left;
      width:100%;
      clear: both;
     
     
     
      /*width:200px;*/
    }
     
    ul#menu_principal ul.sousmenu li.last a.bouton_ssmenu span, ul#menu_principal ul.sousmenu li.first a.bouton_ssmenu span, ul#menu_principal ul.sousmenu li a.bouton_ssmenu span{
    font-size: 0.9em;
    color: #fff;
    display: block;
    padding-left:13px;
    padding-top:1px;
    padding-right:13px;
    height:17px;
    }
     
    ul#menu_principal ul.sousmenu li.last a.bouton_ssmenu, ul#menu_principal ul.sousmenu li.first a.bouton_ssmenu,ul#menu_principal ul.sousmenu li a.bouton_ssmenu{
    display:block;
    }
     
    ul#menu_principal ul.sousmenu li a.bouton_ssmenu{
    background:url(images/item_ss_menu_gauche.gif) no-repeat left top;
    }
     
    ul#menu_principal ul.sousmenu li a.bouton_ssmenu span{
    background:url(images/item_ss_menu_droite.gif) no-repeat right top;
    margin-right:-2px;
    }
    ul#menu_principal ul.sousmenu li.first a.bouton_ssmenu{
    background:url(images/first_item_ss_menu_gauche.gif) no-repeat left top;
    }
    ul#menu_principal ul.sousmenu li.last a.bouton_ssmenu{
    background:url(images/last_item_ss_menu_gauche.gif) no-repeat left top;
    }
    ul#menu_principal ul.sousmenu li.first a.bouton_ssmenu span{
    background:url(images/first_item_ss_menu_droite.gif) no-repeat right top;
    margin-right:-2px;
    }
    ul#menu_principal ul.sousmenu li.last a.bouton_ssmenu span{
    background:url(images/last_item_ss_menu_droite.gif) no-repeat right top;
    margin-right:-2px;
    }
    voici mon html

    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
     
    <div id="menu">
              <ul id="menu_principal">
                <li><a class="bouton_menu" href="#"><span>Présentation</span></a>
                  <ul class="sousmenu">
                    <li class="first"><a class="bouton_ssmenu" href="#"><span>Test 1000</span></a></li>
                    <li class="last"><a class="bouton_ssmenu" href="#"><span>Test 2</span></a></li>
                  </ul>
                </li>
                <li><a class="bouton_menu" href="#"><span>Formation</span></a>
     
                  <ul class="sousmenu">
                    <li class="first"><a class="bouton_ssmenu" href="#"><span>Test 3</span></a></li>
                    <li class="last"><a class="bouton_ssmenu" href="#"><span>Test 4</span></a></li>
                  </ul>
     
                </li>
                <li>
                	<a class="bouton_menu" href="#"><span>Recherche</span></a>
                </li>
                <li><a class="bouton_menu" href="#"><span>Documentation</span></a></li>
                <li><a class="bouton_menu selected" href="#"><span>Campus</span></a>
                  <ul class="sousmenu">
                    <li class="first"><a class="bouton_ssmenu" href="#"><span>Handicap</span></a></li>
                    <li><a class="bouton_ssmenu" href="#"><span>Association</span></a></li>
                    <li><a class="bouton_ssmenu" href="#"><span>Culture</span></a></li>
                    <li><a class="bouton_ssmenu" href="#"><span>Sport</span></a></li>
                    <li class="last"><a class="bouton_ssmenu" href="#"><span>Portail Etudiant Portail Etudiant</span></a></li>
                  </ul>
                </li>
                <li><a class="bouton_menu" href="#"><span>International</span></a></li>
                <li><a class="bouton_menu" href="#"><span>Culture</span></a></li>
                <li id="dernier_item"><a class="bouton_menu" href="#"><span>Actualités</span></a></li>
              </ul>
            </div>
    si tu as une solution je suis preneuse car je galere depuis un jour dessus

    merci

  4. #4
    BnA
    BnA est déconnecté
    Membre averti Avatar de BnA
    Inscrit en
    Mars 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 559
    Points : 397
    Points
    397
    Par défaut
    Ton menu il fonctionne en Javascript ou en full CSS?

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    l'affichage se fait avec du jquery

  6. #6
    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 : 38
    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
    Points : 3 748
    Points
    3 748
    Par défaut
    Bonsoir,

    Tu veux flotter tes <li> et en même temps tu fais dégager les flottants avec le clear:both;, c'est un peu contradictoire
    Il faudrait enlever le clear:both; et rajouter un float:left; sur tes <a> (pour IE6-)

    J'ai réalisé un menu déroulant pour lequel je mets une width à 100% sur la li afin que la largeur s'adapte en fonction du contenu
    Renseigner un width:100% est inutile sauf dans le cas d'un float:left/right, position:absolute;, position:fixed; et display:table/table-cell/table-row étant donné que l'élément doté de l'une de ces propriétés s'adapte à la taille de son contenu et non pas son conteneur.
    Ceci dit, tu n'as pas besoin d'un width:100%;

    Code css : 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
     
    ul#menu_principal ul.sousmenu {
      border: 0;
      position:absolute;
      z-index: 5;
      padding: 5px 0px 0px 0px;
      text-transform:none;
      display:none;
      margin-left:0px;
    }
     
    ul#menu_principal ul.sousmenu li {
      background: none;
      border: 0;
      /* display: block; */
      /* clear: both; */
      float:left;
      /*width:100%;*/
      /* width:200px; */
    }

    Si tu veux te simplifier la vie, évite au maximum de conférer le Layout aux list-items, vu les problèmes de rendu que cela pose.

    A ta place je ferai ceci :

    Code css : 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
     
    ul#menu_principal ul.sousmenu {
      border: 0;
      position:absolute;
      z-index: 5;
      padding: 5px 0px 0px 0px;
      text-transform:none;
      display:none;
      margin-left:0px;
    }
     
    ul#menu_principal ul.sousmenu li {
      background: none;
      border: 0;
      display:inline;
      /* display: block; */
      /* clear: both; */
      /* float:left; */
      /*width:100%;*/
      /* width:200px; */
    }
    
    ul#menu_principal ul.sousmenu li a {
      float:left;
    }

    Et styler uniquement les <a>.

  7. #7
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    J'ai essayé mais rien y fait j'ai le menu sur une ligne et la largeur de chaque li dépend du contenu du a

    tu as une autre idée?

  8. #8
    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 : 38
    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
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par dedel53 Voir le message
    J'ai essayé mais rien y fait j'ai le menu sur une ligne et la largeur de chaque li dépend du contenu du a
    Citation Envoyé par dedel53 Voir le message
    J'ai réalisé un menu déroulant pour lequel je mets une width à 100% sur la li afin que la largeur s'adapte en fonction du contenu.
    Je comprends alors pourquoi tu as float:left et clear:both en même temps.

    Code css : 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
    ul#menu_principal ul.sousmenu {
      border: 0;
      position:absolute;
      z-index: 5;
      padding: 5px 0px 0px 0px;
      text-transform:none;
      display:none;
      margin-left:0px;
      width:200px; /* exemple à adapter */
    }
     
    ul#menu_principal ul.sousmenu li {
      background: none;
      border: 0;
      display:inline;
      /* display: block; */
      /* clear: both; */
      /* float:left; */
      /*width:100%;*/
      /* width:200px; */
    }
    
    ul#menu_principal ul.sousmenu li a {
     display:block;
    }

    Tu n'as pas besoin de flotter tes éléments, passer le <a> en display:block permet d'occuper toute la largeur de son conteneur ul#menu_principal ul.sousmenu

  9. #9
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Points : 45
    Points
    45
    Par défaut
    tu mets une width à 200px mais je ne veux justement pas fixer une largeur

  10. #10
    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 : 38
    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
    Points : 3 748
    Points
    3 748
    Par défaut
    Citation Envoyé par dedel53 Voir le message
    tu mets une width à 200px mais je ne veux justement pas fixer une largeur
    C'est un exemple, si l'un des conteneurs parents a une largeur fixe, mets juste width:100% sur ul#menu_principal ul.sousmenu vu qu'il est en absolute (Cf Mon message plus haut).

Discussions similaires

  1. [MySQL] Menu déroulant avec données sql
    Par matt38 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/08/2012, 23h40
  2. menu déroulant (avec sous menus)
    Par devlopassion dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 14/04/2008, 11h55
  3. [PHP-JS] Menu déroulant avec proposition de login
    Par xender dans le forum Langage
    Réponses: 1
    Dernier message: 16/05/2006, 14h08
  4. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 18h43
  5. Menu déroulant avec préselection automatique
    Par nesbla dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/06/2005, 12h11

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