2012-04-24 3 views
5

У меня проблема с центрированием div в HTML (вертикальный & по горизонтали). Мой код выглядит примерно так:Как центрировать div?

<div id="container">SOME HTML</div> 

#container{ 
    width: 366px; 
    height: 274px; 
    margin: 50%; 
    top: -137px; 
    left: -188px; 
    position:absolute; 
} 

Только хром в центре этого div в середину экрана.

+4

Я может быть что-то не хватает, но, как вы ожидаете, чтобы отцентрировать DIV, если вы используете абсолютное позиционирование? Вы предполагаете, что все экраны имеют одинаковый размер и разрешение? –

ответ

1

Это делает трюк (вертикальная & горизонтальный):

#container{ 
    position: absolute; 
    width: 366px; 
    height: 274px; 
    left: 50%; 
    top: 50%; 
    margin-left: -183px; /* half width */ 
    margin-top: -137px; /* half height */ 
} 
7

Это отцентрировать <div> по горизонтали:

#container{ 
    width: 366px; 
    height: 274px; 
    margin: 0 auto; 
} 

Центрирование по вертикали не совсем просто, может быть, вы должны использовать JavaScript для этого, или вы пытаетесь this css solution.

1

Вы могли бы использовать:

#container { 
    // Your other values, but remove position: absolute; 
    margin: 0 auto; 
} 

В качестве альтернативы, вы можете сделать:

#wrapper, #container { 
    border: 1px solid red; 
    height: 500px; 
    width: 600px; 
} 

#wrapper { 
    bottom: 50%; 
    right: 50%; 
    position: absolute; 
} 

#container { 
    background: yellow; 
    left: 50%; 
    padding: 10px; 
    position: relative; 
    top: 50%; 
} 

И вы HTML код:

<div id="wrapper"> 
    <div id="container"> 
     <h1>Centered Div</h1> 
     <p> 
      This div has been centered within your browser window.</p> 
    </div> 
</div> 

Это будет центрировать <div> в середине окна браузера.

-1

Должно быть хорошо использовать только CSS:

вот demo

#container{ 
    width: 366px; 
    height: 274px; 
    margin: 50%; 
    top: 50%; 
    left: 50%; 
    position:absolute; 
    top:0; 
    bottom:0; 
    left:0; 
    right:0; 
}​ 
+0

не получил, почему это-1? Как это неправильно? – AlexC

2
#container{ 
    width: 366px; 
    height: 274px; 
    top: 50%; 
    left: 50%; 
    margin: -137px 0 0 -188px; 
    position:absolute; 
} 
+0

Thanx alot! ;) Теперь это работает. – What

1

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

<div class="cont"> 
    <div class="box"></div> 
</div> 

Css:

.cont{ 
    background-color: tomato; 
    width: 600px; 
    height: 400px; 
    position: relative; 
} 
.box { 
    width:100px; 
    height:100px; 
    background-color: teal; 
    color:#fff; 
    position: absolute; 
    left: 50%; 
    top: 50%; 
    transform: translate(-50%, -50%) 
} 
Смежные вопросы