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 :

Centrage Menu horizontal dans CSS


Sujet :

Centrer un élément en CSS

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut Centrage Menu horizontal dans CSS
    Bonjour à tous,

    J'ai 2 soucis avec mon CSS:

    1. Je n'arrive pas à centrer mon menu dans ma page. J'ai poutant essayer avec margin, largeur....
    2. J'utilise NVU et ce que j'ai dans ma fen^tre de developpemênt ne correspond pas à ce que je vois dans mon navigateur (page plus large. A quoi est-ce dû?

    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="content-type"
     content="text/html; charset=ISO-8859-1" />
      <title>css vdb</title>
      <style type="text/css">
      #menu, #menu ul { margin: 0pt;
        padding: 0pt;
        list-style-type: none;
        list-style-image: none;
        list-style-position: outside;
        line-height: 21px;
        text-align: center;
        }
     
      #menu { font-weight: bold;
        font-family: Arial;
        font-size: 12px;
        margin-right: 0em;
        width: 100%;
        float: left;
        margin-left: 0pt;
        }
     
      #conteneur { border-style: solid;
        border-width: 1px;
        background-color: rgb(255, 204, 204);
        margin-left: auto;
        margin-right: auto;
        width: 100%;
        }
     
      #entete { background-color: rgb(51, 102, 255);
        background-image: url(file:///g:tesbanv2.JPG);
        }
     
      #texte {  }
     
      #pied { background-color: rgb(204, 0, 0);
        width: 100%;
        clear: left;
        }
     
      #menu a { padding: 0pt;
        background: rgb(0, 0, 0) none repeat scroll 0% 50%;
        -moz-background-clip: initial;
        -moz-background-origin: initial;
        -moz-background-inline-policy: initial;
        display: block;
        color: rgb(255, 255, 255);
        text-decoration: none;
        width: 144px;
        }
     
      #menu li { border-right: 1px solid rgb(255, 255, 255);
        float: left;
        }
     
      html > body #menu li { border-right: 1px solid transparent;
        }
     
      #menu li ul { position: absolute;
        width: 144px;
        left: -999em;
        }
     
      #menu li ul li { border-top: 1px solid rgb(255, 255, 255);
        }
     
      html > body #menu li ul li { border-top: 1px solid transparent;
        }
     
      #menu li ul ul { border-left: 1px solid rgb(255, 255, 255);
        margin: -22px 0pt 0pt 144px;
        }
     
      html > body #menu li ul ul { border-left: 1px solid transparent;
        }
     
      menu a:hover { background: rgb(255, 255, 255) none repeat scroll 0% 50%;
        -moz-background-clip: initial;
        -moz-background-origin: initial;
        -moz-background-inline-policy: initial;
        color: rgb(0, 0, 0);
        }
     
      #menu li:hover ul ul, #menu li.sfhover ul ul { left: -999em;
        }
     
      #menu li:hover ul, #menu li li:hover ul, #menu li.sfhover ul, #menu li li.sfhover ul { left: auto;
        min-height: 0pt;
        }
     
     
      </style>
    </head>
    <body>
    <!-- Faire un fichier .js et mettre entre les balises head : -->
    <script type="text/javascript" src="menu.js"></script><!-- Ou copier le code ci-dessus dans les balises : -->
    <script type="text/javascript">
    <!--
    METTRE LE JAVASCRIPT EN COMMENTAIRES
    POUR QUE LE SCRIPT SOIT VALIDE W3C
    -->
    </script><!-- Et mettre tout entre les balises head. -->
    <div id="conteneur">
    <div id="entete"><br />
    <br />
    <br />
    <br />
    <br />
    <br />
    </div>
    <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&eacute;gorie 1</a></li>
              <li><a href="#">cat&eacute;gorie 2</a></li>
            </ul>
          </li>
          <li>
            <a href="#">vid&eacute;os</a>
          </li>
        </ul>
      </li>
      <li>
        <a href="#">t&eacute;l&eacute;chargements</a>
        <ul>
          <li><a href="#">vid&eacute;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>
      <li>
        <a href="#">accueil</a>
      </li>
    </ul>
    <div id="texte">texte <br />
    <br />
    <br />
    </div>
    <div id="pied">pied</div>
    </div>
    </body>
    </html>
    Merci d'avance pour votre aide.

    PS: Désolé pour la qualité du code mais je suis débutant....

  2. #2
    Membre confirmé Avatar de slack457
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    Bonjour,

    essai d'écrire quelque chose comme ça dans ton CSS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    html, body
    {
         width: 100%;
    }
     
    #conteneur, #entete, #texte, #pied 
    {
         width: 750px;  /*(valeur modifiable)*/
         margin: 0 auto 0 auto;
    }

    Pour ta question 2, je ne peux pas te répondre, j'espère que quelqu'un d'autre le pourra.

    Par contre, comme tu as l'air nouveau je me permet de te donner un bon conseil : on ne mélange jamais le HTML avec le CSS.

    Ecris ton code CSS dans un fichier à part, par exemple : "stylesheet.css"
    (dans ce fichier il n'y aura ABSOLUMENT rien d'autre que du CSS)

    Ensuite dans chacune de tes pages HTML tu "inclue" le fichier .css
    Pour le faire, ajoute cette ligne de code entre tes balises "<head> </head>" (et j'insiste, ajoute cette ligne dans toutes tes page HTML)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="stylesheet.css" type="text/css" media="all" />
    En général, ce fichier .css est utilisé par plusieurs page HTML, il convient donc, pour plus de commodité, de commenter ton fichier .css un peu de cette manière :
    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
    /* page1.html */
     
    .ma_classe1
    {
         option1
         option2
         ...
    }
     
    .ma_classe2
    {
         ...
    }
     
     
    /* page2.html */
     
    .ma_classe3
    {
         ...
    }
     
    ...
    ça te permet de retrouver plus facilement ce que tu cherche par la suite.

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Merci beaucoup pour ta réponse. Je vais essayer. Par contre dans le bout de code que tu m'as envoyé, il n'est pas fait mention du menu. Est-ce normal?


    Et merci de tes conseils.

  4. #4
    Membre Expert Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Par défaut
    Bonjour,

    À priori (je n'ai pas testé le code) :

    Le div #conteneur est en width:100% (largeur totale de la page)
    Le div #entete est en width:100% (idem)
    Le #menu est en width:100% + float:left

    Pour pouvoir centrer un élément, il faut lui définir une taille (largeur, autre que 100% de la page).

    Personnellement, j'enlèverai le float:left sur le #menu (pourquoi le placer sur la gauche si c'est pour le centrer ?), je lui attribuerai une taille et je jouerai sur les marges extérieures (un margin:0 auto) afin de le centrer.

    En espérant avoir correctement visualisé la chose (sans tester le code).
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Mais ça ne va pas créer des problèmes en fonction des résolutions et du navigateur?

  6. #6
    Membre Expert Avatar de HiRoN
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 035
    Par défaut
    Citation Envoyé par Lolo92160 Voir le message
    Mais ça ne va pas créer des problèmes en fonction des résolutions et du navigateur ?
    À priori aucun.
    Si ton menu fais 600px de large (par exemple), aucun problème.
    Le margin:0 auto (par exemple), se chargera de le centrer automatiquement en fonction de la résolution de l'utilisateur, voir automatiquement dans son div conteneur (parent).
    Pensez à utiliser les ressources disponibles en Dev. Web :
    (x)HTML : Cours (X)HTML / FAQ (X)HTML
    CSS : Cours CSS / FAQ CSS / Galerie CSS
    Javascript : Cours / FAQ / Sources
    Mon site : Développeur Web Freelance

  7. #7
    Membre confirmé Avatar de slack457
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Par défaut
    a oui j'ai oublié le menu effectivement

    alors, avec les conseils d'Hiron tu as réussi ?

    fait le nous savoir à la fin, en montrant ton code final ça servira surement à d'autres plus tard

  8. #8
    Membre régulier
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Par défaut
    Désolé, j'ai pas encore eu le temps d'essayer mais je vous tiens au courant.

Discussions similaires

  1. centrage menu horizontal :o
    Par elratus dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/05/2012, 17h06
  2. [CSS 2.1] Menu horizontal full CSS
    Par General_Batton dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 21/03/2012, 14h24
  3. Menu horizontal en CSS sans Javascript...
    Par Décibel dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 17/11/2008, 23h14
  4. Menu horizontal en CSS et liste
    Par SYL666 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 21/06/2006, 15h03

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