Wie kann ich eine horizontale Zentrierung einer <div>
in einem anderen <div>
CSS verwenden?
<div id="outer">
<div id="inner">Foo foo</div>
</div>
Wie kann ich eine horizontale Zentrierung einer <div>
in einem anderen <div>
CSS verwenden?
<div id="outer">
<div id="inner">Foo foo</div>
</div>
Einige Poster haben die CSS 3-Methode zum Zentrieren mit display:box
.
Diese Syntax ist veraltet und sollte nicht mehr verwendet werden. [Siehe auch [dieser Beitrag]](http://css-tricks.com/old-flexbox-and-new-flexbox/) .
Nur der Vollständigkeit halber hier die neueste Art, in CSS 3 zu zentrieren, indem man die Flexibles Box-Layout-Modul .
Wenn Sie also ein einfaches Markup wie:
<div class="box">
<div class="item1">A</div>
<div class="item2">B</div>
<div class="item3">C</div>
</div>
...und Sie möchten Ihre Elemente innerhalb der Box zentrieren, dann brauchen Sie folgendes auf dem übergeordneten Element (.box):
.box {
display: flex;
flex-wrap: wrap; /* Optional. only if you want the items to wrap */
justify-content: center; /* For horizontal alignment */
align-items: center; /* For vertical alignment */
}
.box {
display: flex;
flex-wrap: wrap;
/* Optional. only if you want the items to wrap */
justify-content: center;
/* For horizontal alignment */
align-items: center;
/* For vertical alignment */
}
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
}
.box {
height: 200px;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
border: 2px solid tomato;
}
.box div {
margin: 0 10px;
width: 100px;
}
.item1 {
height: 50px;
background: pink;
}
.item2 {
background: brown;
height: 100px;
}
.item3 {
height: 150px;
background: orange;
}
<div class="box">
<div class="item1">A</div>
<div class="item2">B</div>
<div class="item3">C</div>
</div>
Wenn Sie ältere Browser unterstützen müssen, die eine ältere Syntax für Flexbox verwenden hier ist ein guter Ort zum Suchen.
Horizontal und vertikal. Es funktioniert mit einigermaßen modernen Browsern (Firefox, Safari/WebKit, Chrome, Internet & Explorer & 10, Opera, usw.)
.content {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
<div class="content">This works with any content</div>
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
37 Stimmen
Von diesen großartigen Antworten möchte ich nur hervorheben, dass Sie "#inner" eine "Breite" geben müssen, oder es wird "100%" sein, und Sie können nicht sagen, ob es bereits zentriert ist.
1 Stimmen
display:flex;
ist am einfachsten zu merken (Chrome gibt Ihnen Anleitungen in DevTools) und unterstützt die Zentrierung auf beiden Achsen.