5

我在 HTML(垂直和水平)中居中 div 时遇到问题。我的代码看起来像这样:

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

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

只有 chrome 将这个 div 居中到屏幕的中间。

4

6 回答 6

7

这将<div>水平居中:

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

垂直居中不是很简单,您可能必须为此使用 javascript,或者您尝试这个 css 解决方案

于 2012-04-24T15:41:04.617 回答
2
#container{
    width: 366px;
    height: 274px;
    top: 50%;
    left: 50%;
    margin: -137px 0 0 -188px;
    position:absolute;
}
于 2012-04-24T15:42:34.587 回答
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>在浏览器窗口的中间居中。

于 2012-04-24T15:41:22.417 回答
1

这可以解决问题(垂直和水平):

#container{
    position: absolute;
    width: 366px;
    height: 274px;
    left: 50%;
    top: 50%;
    margin-left: -183px; /* half width */
    margin-top: -137px; /* half height */
}
于 2012-04-24T15:42:52.383 回答
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%)
}
于 2015-03-19T12:40:11.153 回答
-1

只使用 CSS 应该没问题:

这是演示

#container{
    width: 366px;
    height: 274px;
    margin: 50%;
    top: 50%;
    left: 50%;
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
}​
于 2012-04-24T15:42:10.590 回答