'How to specify how many items do I want in a certain row using flex? [duplicate]
(reformulated question)
Hello. There's no problem when using full-screen. But when I squeeze it this happens.
Instead of having 3 items and then 1 item, 1 item, 1 item, 1 item, 1 item, I would like it to be 3 items, 3 items, 3 items.
When I squeeze it even more there is no problem. I get 2 items, 2 items, 2 items.
Thank you.
<div class="items">
<div class="row">
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/3.png" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
</div>
<div class="row">
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
</div>
</div>
css:
.row {
width: 95%;
height: auto;
display: flex;
margin: 0 auto;
flex-flow: wrap;
justify-content: space-around;
}
.items{
width:95%;
margin:0 auto;
}
.item {
box-shadow: 0px 0px 8px #000;
margin: 0px auto 30px auto;
padding: 15px 0;
width: 330px;
}
Solution 1:[1]
You could use width: calc(100%/n); where n represents the number of items you want in each row. You can see the example provided below with four items per row.
.row {
width: 95%;
height: auto;
display: flex;
margin: 0 auto;
justify-content: space-around;
}
.items {
width: 95%;
margin: 0 auto;
}
.item {
box-shadow: 0px 0px 8px #000;
margin: 0 1em;
padding: 15px 0;
width: calc(100%/4);
}
<div class="items">
<div class="row">
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/3.png" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
</div>
<div class="row">
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/1.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
<div class="item">
<img src="img/2.jpg" />
<h2>Lorem Ipsum</h2>
<h3>$101</h3>
<div class="buy_buttons">
<button class="b_buy">Comprar</button>
<button class="b_vista">Vista</button>
</div>
</div>
</div>
</div>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Kameron |
