Reputation: 31
I'm trying to use CSS grid with grid-template-columns: repeat(auto-fill, auto), cells are being set to maximum width, causing one item per row.
Is it possible to have the grid cell width automatically set by the items width? I have tried inline-grid/grid-auto-flow : column, but the items do not wrap with these properties.
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, auto);
color: #444;
}
.box1 {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
width: 250px;
}
.box2 {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
width: 350px;
}
<div class="wrapper">
<div class="box1 a">A</div>
<div class="box1 b">B</div>
<div class="box2 c">C</div>
<div class="box2 d">D</div>
<div class="box1 e">E</div>
<div class="box2 f">F</div>
<div class="box1 g">G</div>
<div class="box2 h">H</div>
<div class="box1 i">I</div>
<div class="box2 j">J</div>
<div class="box2 k">K</div>
<div class="box2 l">L</div>
<div class="box1 m">M</div>
</div>
Upvotes: 3
Views: 1306
Reputation: 272657
Simply move the width of the elements inside grid-template-columns
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, 250px);
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
<div class="box k">K</div>
<div class="box l">L</div>
<div class="box m">M</div>
</div>
Upvotes: 1