J'ai un #header
div qui est 100% width
et dans ce div j'ai une liste non ordonnée. J'ai appliqué margin: 0 auto
à la liste non ordonnée mais cela ne la centrera pas dans l'en-tête div.
Quelqu'un peut-il me dire pourquoi? Je pensais que si je définissais la largeur du div parent, alors la liste non ordonnée devrait pouvoir se centrer avec margin: 0 auto
. Qu'est-ce que je rate?
Voici mon code:
<style>
* {
margin: 0;
padding: 0;
}
#header {
width: 100%;
background-color: #333;
min-height: 160px;
font-family:Arial, Helvetica, sans-serif;
}
#sitename {
font-size: 50px;
width: 620px;
margin:0 auto;
padding-top: 35px;
color:#999;
}
#header ul {
float: right;
margin: 0 auto;
}
#header ul li {
float: left;
padding-right: 20px;
list-style-type: none;
font-size: 20px;
}
</style>
</head>
<body>
<div id="header">
<h1 id="sitename">Photography Auction Site</h1>
<ul>
<li>List of Photos</li>
<li>Image Gallery</li>
<li>Contact Us</li>
</ul>
</div>
</body>
</html>
Réponses:
Vous devez définir la largeur de l'élément que vous centrez, et non de l'élément parent.
Edit : Ok, j'ai vu la page de test maintenant, et voici comment je pense que vous le voulez:
la source
Un bloc en ligne couvre toute la ligne (de gauche à droite), donc une marge gauche et / ou droite ne fonctionnera pas ici. Ce dont vous avez besoin est un bloc, un bloc a des bordures à gauche et à droite et peut donc être influencé par les marges.
Voici comment cela fonctionne pour moi:
la source
Pourquoi pas?
la source
Je ne sais pas pourquoi la première réponse est la meilleure, je l' ai essayé et ne fonctionne pas en fait, comme dit @ kalys.osmonov, vous pouvez donner
text-align:center
àheader
, mais vous devez faireul
commeinline-block
plutôt queinline
, et vous devez avis quitext-align
peut être hérité, ce qui n'est pas bon dans une certaine mesure, donc la meilleure façon (ne fonctionnant pas sous IE 9) est d'utilisermargin
ettransform
. Il suffit de supprimerfloat right
etmargin;0 auto
deul
, comme ci-dessous:De cette façon, vous pouvez résoudre le problème de création d'une largeur dynamique du
ul
centre si vous ne vous souciez pas d'IE8, etc.la source
Nous pouvons définir la largeur de la balise ul, puis elle s'alignera au centre.
la source