Help!!! problème de centrage menu

tipi75 Messages postés 723 Statut Membre -  
jona303 Messages postés 390 Statut Membre -
Bonsoir.

Je n'arrive pas centrer mon menu animé (jquery) dans la div ("imageMenu").

Voici le code php (pages dynamiques):


$contenu .= '<div id="imageMenu">';
$contenu .= '<ul>';
$contenu .= '<div id="le_menu">';
$contenu .= '<li class="imageMenu_opt1"><a href="">Bague</a></li>';
$contenu .= '<li class="imageMenu_opt2"><a href="">Bracelet</a></li>';
$contenu .= '<li class="imageMenu_opt3"><a href="">Chapelet</a></li>';
$contenu .= '<li class="imageMenu_opt4"><a href="">Collier</a></li>';
$contenu .= '<li class="imageMenu_opt5"><a href="">Manchette</a></li>';
$contenu .= '</div>';
$contenu .= '</ul>';
$contenu .= '</div>';


Voici la partie css:

#imageMenu {
position: relative;
width: 1024px;
height: 301px;
overflow: hidden;
border: 2px solid grey;
}

#imageMenu ul {
display: block;
margin: 0 auto;
width: 512px;
height: 301px;
list-style: none;
border: 2px solid orange;
text-align: center;
}

#imageMenu ul li {
display: block;
float: left;
margin-left: auto;
margin-right: auto;
}

/*#le_menu{
position: relative;
width: 1024px;
height: 301px;
margin-left: auto;
margin-right: auto;
text-align: center;
}*/

#imageMenu ul li a {
text-indent: -150px;
background:#FFFFFF none repeats;
cursor:pointer;
display:block;
overflow:hidden;
width:80px;
height: 301px;
}

/*#le_menu{
width: 1024px;
left: 50%;
margin-left: 270px;
display: block;
margin: 0 auto;
width: 512px;
height: 301px;
}*/

#imageMenu ul li.imageMenu_opt1 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bague.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt2 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/bracelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt3 a {
/*background: #ccc;*/
background: url(../images/type_bijoux/chapelet.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt4 a{
/*background: #ccc;*/
background: url(../images/type_bijoux/collier.png) no-repeat;
}

#imageMenu ul li.imageMenu_opt5 a {
/*background: #ccc;*/
background: url(../images/type_bijoux/manchette.png) no-repeat;
}

.clear {
clear: both;
}


Merci pour votre aide.
Configuration: Windows XP
Firefox 3.5.7

42 réponses

  • 1
  • 2
  • 3
Résumé de la discussion

Centrer un menu animé géré par jQuery dans la div imageMenu pose un problème de mise en page et affiche des difficultés de centrage avec les éléments internes et les dimensions fixes. Plusieurs éléments critiques reviennent: le chargement correct de jQuery avant les scripts, l'utilisation de $(document).ready et la gestion du float des éléments li qui peut bloquer le centrage. Des solutions évoquées incluent soit supprimer les floats et centrer via margin:auto sur les conteneurs, soit ajuster les largeurs et aligner les éléments en ligne, sans hacks de text-indent. En cas de test, des ajustements JavaScript peuvent être nécessaires pour mesurer la largeur effective de l'UL et recalculer des marges, mais la cohérence entre structure HTML et CSS reste essentielle.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Profil bloqué
     
    J'avais le même pb en html, et j'ai du englober mon menu d'une div et de mettre en CSS:
    #div_qui_englobe_le_menu
    {
    float:left; /*ou center ou bien right*/
    ............


    Je pense que tu as compris.
    0
    1. notobe Messages postés 2222 Statut Membre 213
       
      float:center n'existe pas !!
      0
  2. tipi75 Messages postés 723 Statut Membre 27
     
    attends j'essaye. Je te tiens au courant dans quelques minutes
    0
  3. tipi75 Messages postés 723 Statut Membre 27
     
    J'ai quelques difficultées à faire ce que tu me proposes. Enfin, j'ai compris ou je devais mettre le float. Mais j'ai déjà un float cela doit créer un conflit. Puis dans la div qui englobe le menu je dois mettre des hauteur et largeur et autre chose.....

    Merci de ton aide.
    0
  4. Profil bloqué
     
    dans ton css tu as mis:
    /*#le_menu{
    position: relative;
    width: 1024px;
    height: 301px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    }*/

    Et
    /*#le_menu{
    width: 1024px;
    left: 50%;
    margin-left: 270px;
    display: block;
    margin: 0 auto;
    width: 512px;
    height: 301px;
    }*/

    Je comprend plus iren a ton code --' c'est pas très jolie a voir =p
    dans ce que j'ai cité, tu as mis des commentaires : /* ton commentaire*/ a quoi ca sert ?!
    Et aussi si tu reprend le même 'id' (le_menu) ca va pas allé !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. tipi75 Messages postés 723 Statut Membre 27
     
    Oui j'avais mis deux fois le_menu parce que j'avais essayé d'envelopper un div autour des li.
    Mais cela n'avais pas marcher donc j'avais mis en commentaire au cas ou j'en aurais besoin.

    Ne fais pas attention à ces commentaires.

    Merci
    0
  7. notobe Messages postés 2222 Statut Membre 213
     
    Centrer un menu en position relative : mouais... Il vaudrait mieux choisir un autre type de positionnement

    D'autre part, ceci n'est pas conforme :
    <ul>';
    $contenu .= '<div id="le_menu">';
    $contenu .= '<li class="imageMenu_opt1"><a href="">Bague</a></li>';

    Ce div n'a rien à faire là car on ne peut pas imbriquer des éléments de type block (or <ul> et <div> en sont tous les 2)

    Et ça
    #imageMenu ul li a {
    text-indent: -150px;
    background:#FFFFFF none repeats;

    repeats n'existe pas non plus, il doit y avoir un s en trop.

    Ce site serait-il en ligne ? Cela serait plus facile pour se faire une idée des solutions à proposer.
    0
  8. tipi75 Messages postés 723 Statut Membre 27
     
    désolé mais non.

    Kena-kaitani, lorsque tu dis de mettre un div autour du menu tu pensais à le faire comment??

    Merci pour vos aides
    0
  9. Profil bloqué
     
    ben, au debut de ton menu tu met une div: <div id="son_nom" ...> et tu met: </div> a la fin de ton menu.
    Et en css tu met:
    #son_nom
    {
    float:center;
    .....
    }

    Pourquoi tu ne veut pas nous filer ton site --
    0
    1. notobe Messages postés 2222 Statut Membre 213
       
      Sena : je répète : float:center n'existe pas !
      0
  10. tipi75 Messages postés 723 Statut Membre 27
     
    Bonsoir,

    Sena kaitani, ce n'est pas que je ne veux pas te le filer mais je bosse en local. J'utilise le Easyphp et donc le serveur apache.

    Voilà... je préfèrerai te donner un lien mais je suis dans l'incapacité.

    Quelqu'un aurait une idée

    Merci pour votre aide.
    0
  11. Profil bloqué
     
    'float' existe, mais c'est 'center' qui en marche pas, c'ets vrai sinon float:left; ou float: right; exist.
    Il te suffie de mettre margin-left et margin-right pour pousser t'as div de la gauche et de la droite.
    0
  12. tipi75 Messages postés 723 Statut Membre 27
     
    Oui mais mon menu pourra être différent et donc le nombre de lien ne sera pas le même. Il faut que je rende cela générique.

    Merci pour ton aide.
    0
  13. tipi75 Messages postés 723 Statut Membre 27
     
    Quelque soit mon menu, je voudrais que celui ci reste centré.

    Merci pour votre aide
    0
  14. tipi75 Messages postés 723 Statut Membre 27
     
    je ne sais pas comment faire????!!!!!!

    Merci
    0
  15. Profil bloqué
     
    essaye dans le html, tu encadre ton menu par par exemple
     <p align="center" > 
    et tu le referme avec
    </p>
    a la fin du menu
    0
  16. tipi75 Messages postés 723 Statut Membre 27
     
    non ça ne marche pas??!!!!!

    Je ne sais pas comment faire?????

    Merci pour ton aide
    0
  17. Profil bloqué
     
    bah en css pousse le avec margin-left: 100px; et margin-right:100px; enfin tu met t'as valeur.
    0
  18. jona303 Messages postés 390 Statut Membre 28
     
    mais ce n'est pas dynamique,..

    peut-etre que si tu met un min-width:600px; (par exemple) puis margin:0auto; sur le ul, mais j'ai un doute.
    Sinon si tu veux le faire à chaque fois centré,.. la solution certaine c'est js,..

    tu fais une div de la largeur max du ul autour du ul,..

    puis en jquery
    var largeur_ul = $('#l_id_du_ul').width();
    var largeur_max =  $('#l_id_du_div_autour');
    var margin_du_ul : (largeur_max-largeur_ul)/2;
    $('#l_id_du_ul').css({marginLeft:margin_du_ul});


    0
  19. tipi75 Messages postés 723 Statut Membre 27
     
    Dans la deuxième ligne il ne faut pas mettre:

    var largeur_max = $('#l'id_du_div_autour').width();

    et pour la quatrième ligne ce n'est pas plutôt:

    $('#l'id_du_ul').css({margin_left:margin_du_ul});
    0
  20. tipi75 Messages postés 723 Statut Membre 27
     
    Jona303, peux tu me détailler ton idée?

    Tu me serais d'un grand secours parce que je galère depuis plusieurs jours.

    Merci pour ton aide
    0
  • 1
  • 2
  • 3