Aus irgendeinem Grund werden meine Divs in einem enthaltenden Div nicht horizontal zentriert:
.row {
width: 100%;
margin: 0 auto;
}
.block {
width: 100px;
float: left;
}
<div class="row">
<div class="block">Lorem</div>
<div class="block">Ipsum</div>
<div class="block">Dolor</div>
</div>
Und manchmal gibt es ein Zeilendiv mit nur einem Blockdiv. Was mache ich falsch?
Antworten:
Um das zu erreichen, was Sie versuchen:
Erwägen Sie die Verwendung
display: inline-block
anstelle vonfloat
.quelle
Versuche dies:
DEMO
mit
margin: 0 auto;
zusammen mitwidth: 100%
ist nutzlos , weil Sie Element den vollen Raum nehmen.float: left
schweben die Elemente nach links, bis kein Platz mehr vorhanden ist, sodass sie in eine neue Zeile eingefügt werden. Verwenden Siedisplay: inline-block
diese Option, um Elemente inline anzeigen zu können, jedoch mit der Möglichkeit, die Größe anzugeben (im Gegensatz dazu,display: inline
wo Breite / Höhe ignoriert werden).quelle
Ausrichtungen in CSS waren ein Albtraum gewesen. Glücklicherweise hat W3C 2009 einen neuen Standard eingeführt: Flexible Box . Es ist ein gutes Tutorial darüber hier . Persönlich finde ich es viel logischer und verständlicher als andere Methoden.
quelle
Verwenden der FlexBox:
Der neueste Trend ist die Verwendung von Flex oder CSS Grid anstelle von Float. Einige 1% -Browser unterstützen Flex jedoch nicht. Aber wen interessieren alte IE-Benutzer überhaupt?)
Geige: Hier überprüfen
quelle
Ein weiteres Arbeitsbeispiel mit
display: inline-block
undtext-align: center
HTML :
CSS :
Geige: http://jsfiddle.net/fNvgS/
quelle
Obwohl diese Frage nicht behandelt wird (weil Sie das
<div>
s im Container ausrichten möchten ), sondern direkt verwandt: Wenn Sie nur ein Div horizontal ausrichten möchten, können Sie dies tun:quelle
Wenn Elemente in einer Zeile angezeigt werden sollen und IE 6/7 keine Rolle spielt, sollten Sie
display: table
unddisplay: table-cell
anstelle von verwendenfloat
.inline-block
führt zu horizontalen Lücken zwischen Elementen und erfordert das Nullstellen dieser Lücken. Am einfachsten ist es, dasfont-size: 0
übergeordnete Element festzulegen und dannfont-size
für untergeordnete Elemente wiederherzustellen ,display: inline-block
indem Sie deren Wertfont-size
auf apx
oder setzenrem
.quelle
Ich versuchte die akzeptierte Antwort, fand aber schließlich Folgendes:
Funktioniert soweit gut.
quelle
Ich habe diese beiden Ansätze verwendet, wenn ich die horizontale Div-Ausrichtung handhaben muss.
first ( Center Aligning Using the margin property ):
Wenn Sie den linken und rechten Rand auf Auto setzen, wird festgelegt, dass der verfügbare Rand gleichmäßig aufgeteilt werden soll. Die Ausrichtung in der Mitte hat keine Auswirkung, wenn die Breite 100% beträgt.
und der zweite:
Die Verwendung des zweiten Ansatzes ist praktisch, wenn Sie mehrere Elemente haben und alle in einer Tabellenzelle zentriert sein sollen (dh mehrere Schaltflächen in einer Zelle).
quelle