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 :

centrer un menu


Sujet :

Centrer un élément en CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 128
    Par défaut centrer un menu
    Bonjour,
    je ne parviens toujours pas à centrer mon menu.
    Où est l'erreur ? J’ai essayé des text align center partout mais sans succès.
    Seul un padding left dans ul de 230px me permet de le faire glisser vers le centre.

    PS: si vous voyez des codes inutiles, les remarques sont les bienvenues !
    J’ai vraiment du mal à faire des menus et je ne suis pas encore au bout de mes peines car après je souhaite faire des menus déroulants sous les menus-(

    Merci
    Marc

    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
     
    <!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=utf-8" />
    <title>Untitled Document</title>
    <style type="text/css">
    <!--
    body {
    	font: 100% Verdana, Arial, Helvetica, sans-serif;
    	background: #666666;
    	margin: 0;
    	padding: 0;
    	text-align: center;
    	color: #000000;
    }
     
    #container {
    	width: 780px;
    	margin: 0 auto;
    	border: 1px solid #000000;
    	text-align: left;
    	background-color: #eeeeee;
    }
     
    #header {
    	background: #DDDDDD; 
    	padding: 0 10px 0 20px;
    }
     
    #header h1 {
    	margin: 0; 
    	padding: 10px 0;
    }
     
    #mainContent {
    	padding: 0 20px;
    	background-color: #dddddd;
    }
     
    #footer {
    	padding: 0 10px;
    	background:#DDDDDD;
    }
     
    #footer p {
    	margin: 0; 
    	padding: 10px 0;
    }
     
     
    #menu {
    	width:780px;
    	height:30px;
    	padding:0px;
    	clear:both;
    	background-color:#416271;
    }
     
    #menu ul {
    	list-style:none;
    	margin:auto;
    	display:block;
    	padding-top: 0;
    	padding-right: 0;
    	padding-bottom: 0;
    	padding-left: 0px;
    }
     
    #menu ul li {
    	list-style:none;
    	display:inline;
    	width:auto;
    	height:30px;
    	padding:0px;
    	font-family:Arial, Helvetica, sans-serif;
    	font-size:13px;
    	line-height: 30px;
    	float: left;
    }
     
    #menu ul li a {
    	height:30px;
    	width:auto;
    	float:left;
    	text-decoration:none;
    	color:#fff;
    	margin-top: 0px;
    	margin-right: 3px;
    	margin-bottom: 0px;
    	margin-left: 3px;
    	padding-top: 0;
    	padding-right: 0;
    	padding-bottom: 0;
    	padding-left: 25px;
    }
     
    #menu ul li a:hover {
    	height:30px;
    	width:auto;
    	text-decoration:underline;
    	color:#fff;
    	padding-top: 0;
    	padding-right: 0;
    	padding-bottom: 0;
    	padding-left: 25px;
    	background-repeat: no-repeat;
    	background-position: left;
    }
     
    #menu ul li a.current {
    	height:30px;
    	width:auto;
    	float:left;
    	text-decoration:underline;
    	color:#fff;
    	padding-top: 0;
    	padding-right: 0;
    	padding-bottom: 0;
    	padding-left: 25px;
    	background-repeat: no-repeat;
    	background-position: left;
    }
     
     
    -->
    </style>
    </head>
     
    <body>
     
    <div id="container">
      <div id="header">
        <h1>Header</h1>
      <!-- end #header --></div>
     
       <div id="menu">
       		<ul>
            		<li><a class="current" href="home.html" title="">home</a></li>
                	<li><a href="home.html" title="">services</a></li>
                	<li><a href="home.html" title="">clients</a></li>
                	<li><a href="home.html" title="">testimonials</a></li>
               		<li><a href="home.html" title="">contact us</a></li>
            	</ul>
     
        </div>  <!--menu-->
     
     
      <div id="mainContent">
        <h1> Main Content </h1>
        <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Praesent aliquam,  justo convallis luctus rutrum, erat nulla fermentum diam, at nonummy quam  ante ac quam. Maecenas urna purus, fermentum id, molestie in, commodo  porttitor, felis. Nam blandit quam ut lacus. Quisque ornare risus quis  ligula. </p>
     
    	<!-- end #mainContent --></div>
      <div id="footer">
        <p>Footer</p>
      <!-- end #footer --></div>
    <!-- end #container --></div>
    </body>
    </html>

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    C'est l'instruction "float:left" sur <#menu li> et <#menu li a> qui te pose les problemes. On ne peut pas aligner le contenu sur centre et l'avoir flotter a gauche dans le meme temps. C'est pas logique

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 128
    Par défaut re
    merci luciens,
    cela va beaucoup mieux sans les float left -)
    je pensais qu'on devait mettre tous les items en float left dans le ul puis centrer le ul.
    ce qui est bien c'est qu'apparemment il suffit de mettre ul en float left ou right pour transformer mon menu centré en menu à gauche ou à droite sans inversion des items (cela m'arrive souvent avec les li en float right où tous les items s'inversent)


    cependant il reste un souci.
    dans les li j'ai un padding left de 25px pour séparer les items du menu et pour des raisons inconnues un margin left et right de 3px sur un seul des li a (je suppose qu'il se propage aux a:hover et current aussi mais alors on se demande pourquoi on a répété padding de 25px dans chaque ul li a).
    cela empêche de centrer parfaitement le menu.
    dois-je créer une classe a:first pour le premier item du menu sans padding left ?

    merci
    marc

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 128
    Par défaut re
    j'ai compris le margin de 3px.
    j'ai ajouté un contour noir dans ul li a et on voit très bien chaque item calé à droite du cadre avec les 25px de padding à gauche du texte et les 3px entre chaque cadre. cela me parait donc intéressant de garder ces 3px au cas où je voudrais un rectangle de survol sur les li...

    il me reste le problème de centrage avec les 25px de padding et peut-être aussi que ces 3px de margin sont aussi reportés à gauche du premier item et fausse légèrement le centrage

    merci
    marc

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 7
    Par défaut
    Il va mieux avec la pseudo classe "first-child"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #menu li:first-child a {padding-left:0px;}
    Ça ne marchera pas sur IE6, mais sur les autres navigateurs on ne devra pas rencontrer des problèmes.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2009
    Messages : 128
    Par défaut re
    merci pour ton aide.
    incompatible avec ie6 mais ok pour ie7, ie8, chrome,firefox,...?

    peux-tu cependant modifier le code suivant car je ne sais pas comment cascader les deux classes current et child :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ul>
            		<li><a class="current" href="home.html" title="">home</a></li>
                	<li><a href="home.html" title="">services</a></li>
                	<li><a href="home.html" title="">clients</a></li>
                	<li><a href="home.html" title="">testimonials</a></li>
               		<li><a href="home.html" title="">contact us</a></li>
            	</ul>

    pour l'étape suivante d'ajout d'un sous-menu à services (ou à d'autres), tu me conseilles quelle voie ou lien sur ce forum ? je sais que je dois mettre un ul et ses li dans le li principal.


    merci beaucoup
    marc

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

Discussions similaires

  1. centrer un menu horizontal
    Par philippef dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 27/08/2007, 12h34
  2. Centrer le menu
    Par Sophie2097 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 21/02/2007, 14h32
  3. centrer le menu navigation
    Par darcy dans le forum Mise en page CSS
    Réponses: 16
    Dernier message: 14/11/2006, 17h43
  4. [css] Centrer un menu
    Par kilinette dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/06/2005, 16h47

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