有没有办法将浮动元素对齐在中心

时间:2015-07-03 18:16:53

标签: html css

enter image description here

你可以看到第五个盒子后面有一个额外的空间。有没有办法将它对齐在中心?

请注意,这些方框可以是任何编号。

更新

这是jsfiddle链接 http://jsfiddle.net/esy2hgLm/

我正在尝试使用display: flex获得相同的动态宽度

4 个答案:

答案 0 :(得分:4)

你可以使用一些flexbox魔术而不是浮动:

.wrapper {
  display: flex;           /* Magic begins */
  flex-wrap: wrap;         /* Multiline */
  justify-content: center; /* Center items */
}



.wrapper {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.box {
  width: 100px;
  height: 100px;
  background: seagreen;
  margin: 20px;
  float: left;
}

<div class="wrapper">
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
  <div class="box"></div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

尝试将此添加到您的CSS:

.wrapper {
  width: 700px;
  margin: 0 auto
}

请注意,这需要包装器具有固定的宽度(这意味着如果盒子的数量发生变化,它将不是理想的。)

我建议看看Flexbox的中心元素。这里有几篇你应该阅读的文章:

请注意缺少对&lt; IE9

这是看起来的样子:

.wrapper {
  display: flex;           
  flex-wrap: wrap;         
  justify-content: center; 
}

答案 2 :(得分:0)

您必须对齐包装器,而不是项目。确保包装器不比内容宽,并将margin: 0 auto;添加到包装器CSS,后者应将其置于其父级中心。

答案 3 :(得分:0)

您可以margin使用0 auto

试试这个:

.wrapper {
width: 600px;
margin: 0 auto;
display: block;
}