Ich habe eine #header
Div, die ist, 100% width
und innerhalb dieser Div habe ich eine ungeordnete Liste. Ich habe mich margin: 0 auto
auf die ungeordnete Liste beworben , aber sie wird nicht im Header-Div zentriert.
Kann mir bitte jemand sagen warum? Ich dachte, wenn ich die Breite des übergeordneten Div definiere, sollte sich die ungeordnete Liste zentrieren können margin: 0 auto
. Was vermisse ich?
Hier ist mein 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>
Antworten:
Sie müssen die Breite des Elements definieren, das Sie zentrieren, nicht das übergeordnete Element.
Edit : Ok, ich habe die Testseite jetzt gesehen und hier ist, wie ich denke, dass du es willst:
quelle
Ein Inline-Block deckt die gesamte Linie ab (von links nach rechts), sodass ein Rand links und / oder rechts hier nicht funktioniert. Was Sie brauchen, ist ein Block. Ein Block hat links und rechts Ränder, die durch Ränder beeinflusst werden können.
So funktioniert es bei mir:
quelle
Warum nicht?
quelle
Ich weiß nicht , warum die erste Antwort die beste ist, versuchte ich es und in der Tat nicht arbeiten, wie @ kalys.osmonov sagte, können Sie geben
text-align:center
zuheader
, aber Sie haben zu machen ,ul
wieinline-block
stattinline
, und auch Sie haben zu bemerken , Dastext-align
kann vererbt werden, was bis zu einem gewissen Grad nicht gut ist. Der bessere Weg (funktioniert nicht unter IE 9) ist die Verwendung vonmargin
undtransform
. Entfernen Sie einfachfloat right
undmargin;0 auto
ausul
, wie unten:Auf diese Weise kann das Problem behoben werden, dass die dynamische Breite der
ul
Mitte festgelegt wird, wenn Sie sich nicht für IE8 usw. interessieren.quelle
Wir können die Breite für das ul-Tag einstellen, dann wird die Mitte ausgerichtet.
quelle