Выровнять по центру на абсолютно позиционированном элементе Div - PullRequest
87 голосов
/ 31 октября 2008
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>

Элемент находится сверху, но я не могу отцентрировать его с помощью <center> или margin: 0 auto;

Ответы [ 6 ]

147 голосов
/ 31 октября 2008

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

div#thing {
    position: absolute;
    top: 0px;
    z-index: 2;
    width:400px;
    margin-left:-200px;
    left:50%;
}
93 голосов
/ 10 декабря 2012
div#thing
{
    position: absolute;
    width:400px;
    right: 0;
    left: 0;
    margin: auto;
}
31 голосов
/ 16 августа 2016

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

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

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

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

// Vertical example.
div#thing {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
0 голосов
/ 11 июля 2016

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

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>
0 голосов
/ 20 июня 2016

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

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

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

0 голосов
/ 15 января 2009

Да

div#thing { text-align:center; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...