如何居中一个相对div(内部有绝对div)

时间:2015-12-21 22:58:15

标签: html css

我希望将div(容器)视为中心。我试过保证金:0px auto;但它没有用。



#container {
  position: relative;
}
#abs1{
  width:350px;
  height:230px;
  position: absolute;
  left: 0px;
  top: 0px;
  border:2px solid black;
  }
#abs2{
  width:250px;
  height:100px;
  position: absolute;
  left: 380px;
  top: 0px;
  border:2px solid black;
  }

<div id="container">
    <div id="abs1" ></div>
    <div id="abs2" ></div>
</div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:4)

如果您想使用margin: 0 auto;使容器居中,您还需要为该容器提供宽度。

#container {
  position: relative;
  margin: 0 auto;
  width: 530px;
}
#abs1{
  width:350px;
  height:230px;
  position: absolute;
  left: 0px;
  top: 0px;
  border:2px solid black;
  }
#abs2{
  width:250px;
  height:100px;
  position: absolute;
  left: 380px;
  top: 0px;
  border:2px solid black;
  }
<div id="container">
    <div id="abs1" ></div>
    <div id="abs2" ></div>
</div>

答案 1 :(得分:0)

史蒂夫说你需要给父容器一个宽度

#container {
  position: absolute;
  -webkit-transform: translateX(-50%) ;
  -moz-transform: translateX(-50%) ;
  transform: translateX(-50%) ;
  left:50%;
  top: 10px;
  width: 600px;
}
#abs1{
  width:350px;
  height:230px;
  position: absolute;
  left: 0px;
  top: 0px;
  border:2px solid black;
  }
#abs2{
  width:250px;
  height:100px;
  position: absolute;
  left: 380px;
  top: 0px;
  border:2px solid black;
  }
<div id="container">
    <div id="abs1" ></div>
    <div id="abs2" ></div>
</div>

答案 2 :(得分:0)

这里可以找到一个非常酷的解决方案。

https://css-tricks.com/centering-in-the-unknown

它使用伪元素来对任何内容进行居中,而不管它是否为模态尺寸。

答案 3 :(得分:0)

您可以在不使用绝对定位的情况下实现所需的布局。

在包含块上,使用display: table在块级元素上获得适合宽度的缩小,这样您就可以使用margin: 0 auto使块居中。

在包含块中,浮动两个子元素并根据需要调整边距。

&#13;
&#13;
#container {
  overflow: auto;
  border: 1px dotted blue;
  display: table;
  margin: 0 auto;
}
#abs1{
  width: 150px;
  height:230px;
  border:2px solid black;
  float: left;
  margin-right: 20px;
  }
#abs2{
  width: 150px;
  height:100px;
  border:2px solid black;
  float: left;
  }
&#13;
<div id="container">
    <div id="abs1" ></div>
    <div id="abs2" ></div>
</div>
&#13;
&#13;
&#13;