div#thing {
position: absolute;
top: 0px;
z-index: 2;
margin: 0 auto;
}
<div id="thing">
<p>text text text with no fixed size, variable font</p>
</div>
Div en üstte, ancak onu <center>veya ile ortalayamıyorum margin: 0 auto;
Yanıtlar:
divAşağıdaki gibi sabit bir genişlik verirseniz probleminiz çözülebilir :
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;
}
Partiye geç kaldığımı biliyorum, ancak burada tam genişliğini bilmediğinizde mutlak bir öğeyi yatay olarak konumlandırması gereken insanlar için bir cevap vereceğimi düşündüm.
Bunu dene:
// Horizontal example.
div#thing {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
Aynı teknik, dikey hizalamaya ihtiyaç duyduğunuzda, aşağıdaki gibi özellikleri ayarlayarak da uygulanabilir:
// Vertical example.
div#thing {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
.contentBlock {
width: {define width}
width: 400px;
position: absolute;
left: 0;
right: 0;
margin-left: auto;
margin-right: auto;
}
Göreli bir genişliğe (yüzde olarak) sahip olmanız gerekiyorsa, div'inizi mutlak konumlandırılmış bir genişliğe kaydırabilirsiniz:
div#wrapper {
position: absolute;
width: 100%;
text-align: center;
}
Bir öğeyi mutlak olarak konumlandırmak için, ana öğenin göreceli olarak konumlandırılması gerektiğini unutmayın.
Aynı sorunu yaşıyordum ve sınırlamam önceden tanımlanmış bir genişliğe sahip olamamamdı. Öğenizin sabit bir genişliği yoksa, bunu deneyin
div#thing
{
position: absolute;
top: 0px;
z-index: 2;
left:0;
right:0;
}
div#thing-body
{
text-align:center;
}
sonra html'nizi böyle görünecek şekilde değiştirin
<div id="thing">
<div id="thing-child">
<p>text text text with no fixed size, variable font</p>
</div>
</div>
Evet:
div#thing { text-align:center; }