Warum kann ich nicht mit Rand zentrieren: 0 auto?
Ich habe eine #header
div, dass ist 100% width
- und innerhalb dieser div habe ich eine ungeordnete Liste. Ich habe mich beworben margin: 0 auto
um die ungeordnete Liste, aber es wird nicht zentriert innerhalb des header-div.
Kann jemand mir bitte sagen, warum? Ich dachte, wenn ich definieren Sie die Breite des übergeordneten div, dann die ungeordnete Liste sollte in der Lage sein Zentrum selbst, mit margin: 0 auto
. Was bin 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>
Kommentar zu dem Problem - Öffnen
Welchen browser verwenden Sie? IE/Win hat einige Probleme mit Margin: auto.
Warum tun Sie auch float-Ihre ul auf der rechten Seite? Nehmen Sie das raus, und wahrscheinlich auch das float:left für die li, und Sie sollten in Ordnung sein.
firefox jetzt
Ich bin erstellen einer Navigationsleiste. Ich habe aus der rechts float für ul und in einen float left für die li, aber das bringt es alles auf der linken Seite jetzt.
InformationsquelleAutor der Frage zeckdude | 2009-06-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie legen Sie die Breite des Elements, Sie werden zentrieren, nicht das übergeordnete element.
Bearbeiten: Ok, ich habe die Testseite jetzt und hier ist, wie ich denke, Sie wollen es:
InformationsquelleAutor der Antwort PatrikAkerstrand
Inline-block umfasst die ganze Zeile (von Links nach rechts), so dass ein Rand Links und/oder rechts, funktioniert hier nicht. Was Sie brauchen, ist ein block, ein block hat die Ränder Links und rechts so beeinflusst werden kann, um die Margen.
Dies ist, wie es für mich funktioniert:
InformationsquelleAutor der Antwort Hoeks
Warum nicht?
InformationsquelleAutor der Antwort kalys.osmonov
Ich weiß nicht, warum die erste Antwort ist die beste, ich habe es ausprobiert und funktioniert nicht in der Tat, wie @kalys.osmonov sagte, Sie kann geben
text-align:center
zuheader
, aber Sie haben, umul
alsinline-block
eher alsinline
, und auch Sie haben, um zu bemerken, dasstext-align
kann vererbt werden, das ist nicht gut, zu einem gewissen Grad, so der bessere Weg (funktioniert nicht unter IE 9) ist mitmargin
undtransform
. Entfernen Sie einfachfloat right
undmargin;0 auto
ausul
wie unten:Diese Weise kann das problem beheben, dass die dynamische Breite der
ul
center, wenn Sie nicht kümmern, IE8 usw.InformationsquelleAutor der Antwort bill dou