如何始终使用网格而不是元素来居中窗口?

时间:2018-01-27 18:57:34

标签: html css grid

如何让我的网格容器始终保持居中,但是具有固定宽度的元素仍然向左浮动,即使在断开时也是如此?就像在我的例子中,但如图所示,它不在中心。是否需要js或者只能用css修复?感谢。

这就是我的意思:

#wrap {
  width: 100%;
  background: #f8f8f8;
  height: 300px;
}

#container {
  width: 100%;
  max-width: 400px;
  background: #f1f1f1;
  margin: auto;
}

#item {
  background: white;
  height: 50px;
  width: 50px;
  float: left;
  padding: 5px;
}

#item1 {
  width: 100%;
  height: 100%;
  background: red;
}
<div id="wrap">
  <div id="container">
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
    <div id="item">
      <div id="item1"></div>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

注意:对多个项目而不是class使用id。不应在代码中重复相同的id

您可以在此处使用 Flexbox 。使用justify-content:center来对齐项目中心。

Stack Snippet

#wrap {
  width: 100%;
  background: #f8f8f8;
  height: 300px;
}

#container {
  width: 100%;
  max-width: 400px;
  background: #f1f1f1;
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}

.item {
  background: white;
  height: 50px;
  width: 50px;
  padding: 5px;
  box-sizing: border-box;
}

.item1 {
  width: 100%;
  height: 100%;
  background: red;
}
<div id="wrap">
  <div id="container">
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
    <div class="item">
      <div class="item1"></div>
    </div>
  </div>
</div>