Antworten:
Ihr Problem kann gelöst werden, wenn Sie div
eine feste Breite wie folgt angeben:
div#thing {
position: absolute;
top: 0px;
z-index: 2;
width:400px;
margin-left:-200px;
left:50%;
}
div#thing
{
position: absolute;
width:400px;
right: 0;
left: 0;
margin: auto;
}
Ich weiß, dass ich zu spät zur Party komme, aber ich dachte, ich würde hier eine Antwort für Leute geben, die einen absoluten Gegenstand horizontal positionieren müssen, wenn Sie seine genaue Breite nicht kennen.
Versuche dies:
// Horizontal example.
div#thing {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
Dieselbe Technik kann auch angewendet werden, wenn Sie möglicherweise eine vertikale Ausrichtung benötigen, indem Sie einfach die Eigenschaften wie folgt anpassen:
// Vertical example.
div#thing {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
Wenn Sie eine relative Breite (in Prozent) benötigen, können Sie Ihr Div in eine absolut positionierte einschließen:
div#wrapper {
position: absolute;
width: 100%;
text-align: center;
}
Denken Sie daran, dass das übergeordnete Element relativ positioniert werden muss, um ein Element absolut zu positionieren.
Ich hatte das gleiche Problem und meine Einschränkung war, dass ich keine vordefinierte Breite haben kann. Wenn Ihr Element keine feste Breite hat, versuchen Sie dies
div#thing
{
position: absolute;
top: 0px;
z-index: 2;
left:0;
right:0;
}
div#thing-body
{
text-align:center;
}
Ändern Sie dann Ihr HTML so, dass es so aussieht
<div id="thing">
<div id="thing-child">
<p>text text text with no fixed size, variable font</p>
</div>
</div>
.contentBlock {
width: {define width}
width: 400px;
position: absolute;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
}
Ja:
div#thing { text-align:center; }