Ich habe hier einen Arbeitscode : http://jsfiddle.net/WVm5d/ (Möglicherweise müssen Sie das Ergebnisfenster vergrößern, um den Effekt "Ausrichtung ausrichten" zu sehen.)
Frage
Der Code funktioniert gut, aber ich mag nicht display: table;
. Nur so kann ich das Wrap-Class-Align-Center erstellen. Ich denke, es wäre besser, wenn es eine Möglichkeit gäbe, display: block;
oder zu verwenden display: inline-block;
. Ist es möglich, das Ausrichtungszentrum auf andere Weise zu lösen?
Das Hinzufügen eines Fixed with zum Container ist für mich keine Option.
Ich werde meinen Code auch hier einfügen, wenn der JS Fiddle-Link in Zukunft unterbrochen wird:
body {
background: #bbb;
}
.wrap {
background: #aaa;
margin: 0 auto;
display: table;
overflow: hidden;
}
.sidebar {
width: 200px;
float: left;
background: #eee;
}
.container {
margin: 0 auto;
background: #ddd;
display: block;
float: left;
padding: 5px;
}
.box {
background: #eee;
border: 1px solid #ccc;
padding: 10px;
margin: 5px;
float: left;
}
.box:nth-child(3n+1) {
clear: left;
}
<div class="wrap">
<div class="sidebar">
Sidebar
</div>
<div class="container">
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
<div class="box">
Height1
</div>
<div class="box">
Height2<br />
Height2
</div>
<div class="box">
Height3<br />
Height3<br />
Height3
</div>
</div>
<div class="sidebar">
Sidebar
</div>
</div>
Versuche dies. Ich fügte
text-align: center
zu Körper unddisplay:inline-block
zu wickeln, und entfernte dann Ihredisplay: table
quelle
white-space: nowrap;
.body
der Mitte des Textes platziert werden? das klingt für mich nach einem riesigen OverkillWenn Sie ein
<div>
with habentext-align:center;
, wird jeder darin enthaltene Text in Bezug auf die Breite dieses Containerelements zentriert.inline-block
Elemente werden zu diesem Zweck als Text behandelt, sodass sie auch zentriert werden.quelle
Sie können dies auch mit der Positionierung tun, indem Sie Parent Div auf Relative und Child Div auf Absolute setzen.
quelle
Sie müssen "display: table" nicht verwenden. Der Grund, warum Ihr Versuch zur automatischen Zentrierung von Rand: 0 nicht funktioniert, liegt darin, dass Sie keine Breite angegeben haben.
Dies wird gut funktionieren:
Sie müssen display: block nicht angeben, da dieses div standardmäßig blockiert ist. Sie können wahrscheinlich auch den Überlauf verlieren: versteckt.
quelle
Ähnlich wie bei der Antwort von @ vijayscode wird hiermit ein Inline-Block-Element horizontal zentriert (ohne dass auch die Stile der übergeordneten Elemente geändert werden müssen):
quelle
Ich habe gerade 2 Parameter geändert:
Live-Demo
quelle
Toller Artikel Ich fand, was für mich am besten funktionierte, war ein% zur Größe hinzuzufügen
quelle
Benutz einfach:
line-height:50px
Ersetzen Sie "50px" durch die gleiche Höhe wie Ihr Div.
quelle
line-height
.text-align: center;
. Das Anpassen der Linienhöhe ist eine Lösung für die vertikale Zentrierung, jedoch keine sehr robuste Lösung für einen Inline-Block.