2008-10-31 3 views

ответ

142

Ваша проблема может быть решена, если вы даете фиксированную ширину div следующим образом:

div#thing { 
    position: absolute; 
    top: 0px; 
    z-index: 2; 
    width:400px; 
    margin-left:-200px; 
    left:50%; 
} 
+0

Я не знаю, почему Я не думал об этом, хотя мы все время используем ту же технику для вертикального центрирования ... В любом случае, вы спасли меня много времени. – Aayush 2010-08-31 10:19:30

+1

Что делать, если пользователь имеет вертикальную прокрутку вниз, div отображается в верхней части страницы, пока он должен появляться в видимой области. – PUG 2012-08-26 17:45:04

+0

. Я показываю миниатюры динамически reszied изображений в моем оверлейном div, поэтому я не знаю ширины. – PUG 2012-09-01 04:13:13

-23

Да:

div#thing { text-align:center; } 
88
div#thing 
{ 
    position: absolute; 
    width:400px; 
    right: 0; 
    left: 0; 
    margin: auto; 
} 
0

Если вам необходимо иметь относительное ширину (в процентах), вы можете обернуть ваш div в абсолютном положении:

div#wrapper { 
    position: absolute; 
    width: 100%; 
    text-align: center; 
} 

Помните, что для того, чтобы позиционировать элемент абсолютно, родительский элемент должен располагаться относительно.

0

У меня была такая же проблема, и мое ограничение заключалось в том, что у меня не может быть предопределенной ширины. Если элемент не имеет фиксированную ширину, а затем попробовать это

div#thing 
{ 
    position: absolute; 
    top: 0px; 
    z-index: 2; 
    left:0; 
    right:0; 
} 

div#thing-body 
{ 
    text-align:center; 
} 

затем изменить ваш HTML, чтобы посмотреть, как этот

<div id="thing"> 
<div id="thing-child"> 
    <p>text text text with no fixed size, variable font</p> 
</div> 
</div> 
21

Я знаю, что я опоздал на вечеринку, но я думал, что я дать ответ здесь для людей, которым необходимо горизонтально позиционировать абсолютный предмет, когда вы не знаете его точной ширины.

Попробуйте это:

// Horizontal example. 
div#thing { 
    position: absolute; 
    left: 50%; 
    transform: translateX(-50%); 
} 

Тот же метод может быть применен, когда вы, возможно, потребуется выравнивание по вертикали, просто путем изменения свойств следующим образом:

// Vertical example. 
div#thing { 
    position: absolute; 
    top: 50%; 
    transform: translateY(-50%); 
} 
Смежные вопросы