-->

Center a grid of Divs (dynamically generated)

2019-08-24 01:59发布

问题:

I've tried every trick from SO and other sources but for the life of me I cannot get this darn grid of boxes to center. I'm trying to get the entire grid to be centered on the page.

Here's a fiddle of what it looks like (drag out the preview panel a bit to the left so you get at least two columns.): http://jsfiddle.net/valgaze/0w77ccvj/1/

The grid of boxes are inline-block. There is a hacky way to do this by imposing margins but that's undesirable for numerous reasons. There must be something I'm missing and I would be much obliged for any insights!

Here's a simplified version:

 #gridArea{
  background-color:#FFF300;
  display: -moz-inline-stack;
  display: inline-block;
  border-style: dotted;
  border-width: 1px;
  margin: 0 auto;   
}

.wrap{
  text-align: center;
}
      
.card{
  background:#000;
  padding:19px 16px;
  float:left;
  margin-right: 10px;
  margin-bottom: 18px;
  width:350px;
  height:100px;
  display: inline;
  text-align: center;

     

}
<!---Center this grid---->
<div class="wrap">
  <div id="gridArea">

          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>
          <div class="card">HERE'S DATA</div>


  </div>
</div>

回答1:

Looks like you'll need the following:

 #gridArea{ text-align: center; }
.card {display: inline-block }

and then remove float: left; on .card

Link to JSFiddle



标签: jquery html css