центрируйте блок div в середине страницы, используя css - PullRequest
7 голосов
/ 23 марта 2010

Я хочу центрировать div прямо в середине страницы, я попытался top:30%, но когда размер окна изменился с выравниванием.

<div id=cent></div>

Спасибо, Жан

Ответы [ 7 ]

16 голосов
/ 23 марта 2010

Если вы знаете высоту / ширину этого div (например, это будет 100px X 200px), то вы можете сделать это следующим образом:

#cent {
  position:absolute;
  top:50%;
  left:50%;
  margin-top:-50px; /* this is half the height of your div*/  
  margin-left:-100px; /*this is half of width of your div*/
}

UPDATE: другой вариант: см. http://www.w3.org/Style/Examples/007/center (Центрирование по вертикали)

1 голос
/ 24 июля 2017

HTML:

<div id="box"></div>   

CSS:

#box{
background-color: green;
width:100px;
height:100px;
margin:auto; /*you only need this part to center*/
}

Выведите из кавычек или двойных кавычек вокруг "ящика" id, они вам нужны.

1 голос
/ 04 августа 2010

Добавление заметок к ссылке наивистов (на сайт советов w3c): display:table-cell не работает с height:100%. Итак, если вы хотите расположить вертикально элемент на странице, высота которого вам неизвестна, вам нужно поместить его в контейнер с display:table и height:100% и в другой контейнер с display:table-cell и vertical-align:middle.

Кроме того, если вы хотите центрировать его по горизонтали, вам нужно указать width:100% для тела, внешнего контейнера, и дать text-align:center для внутреннего контейнера. Содержимое должно иметь display:inline-block, а для сброса выравнивания text-align:left.

В конечном итоге это становится следующим:

<style>
#vcontainer {
  display: table;
  height: 100%;
  width: 100%;
}
#hcontainer {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
#content {
  display: inline-block;
  border: lightGray 1px solid;
  background-color: lightBlue;
  text-align: left;
}
</style>
<body>
  <div id="vcontainer"><div id="hcontainer">
    <div id="content">
      Hoyjo!<br>
      I have returned to my hometown!<br>
      Lolololo lololo lololo lololo lololo!<br>
    </div>
  </div></div>
</body>

Я не могу гарантировать, что он будет работать в старых браузерах (IE6 / 7). Он будет работать на IE8 при условии, что он работает по стандартам IE8 (да, это вас смущает. Спасибо, MS!), И вы должны дать <html> и <body> height:100%.

0 голосов
/ 08 мая 2018

Если вы хотите верхнюю середину:
HTML:

<div class="cent">
  <!-- code -->
</div>

CSS:

.cent {
  align: center;
}

и если вы хотите прямую середину, используйте тот же HTML, но измените CSS на:

.cent {
  align: center;
  position: absolute;
  top: 40%;
  left: 45%;
}

Пример кода: jsfiddle.net / Lzdvnk29 (он может выглядеть не по центру, если вы
посмотрите на это, но если это полная HTML-страница, она будет отображаться в середине)

0 голосов
/ 10 июня 2014
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
0 голосов
/ 04 августа 2010

Вот как:

#cent
{
    margin-left:50px;
    margin-right:50px;
}

Теперь ваш div будет по 50 пикселей слева и справа и центрирован в любом контейнере, в котором он находится.

0 голосов
/ 23 марта 2010
 <div id="content"
                 style="text-align: center;
                 vertical-align: middle;
                 border-color: #000000;
                 border-width: 1px;
                 border-style: solid;
                 margin-top: 25%;
                 margin-bottom: 25%;">
                hi
            </div>

Это сработало для меня ...

Редактировать: Это выровняет весь div ... независимо от размера div или страницы ... Предполагая, что этот id - единственный div на всей странице ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...