[CSS]Change display:flex list to display:grid
I often use display:flex when I make a list of articles or products in css, but I wonder if I still have to use display:grid? So I’ll give it a try.
Personally, I’m used to display:flex, so I’m not very good at display:grid.
It’s fine for simple lists, but it seems to be able to handle quite complex layouts, and conversely, it makes me wonder every time “What’s that? How do I put it together? I’m not sure how to put it all together;
Well, let’s try display:flex as usual.
<div class="list01">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
<style>
.list01 {
width: 900px;
background: #ddd;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.list01 .item {
margin-bottom: 25px;
width: 32%;
height: 100px;
color: #fff;
background: #000;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
</style>
When displayed in a browser, it looks like this.

Now, let’s change the css part of this code to display: grid.
<div class="list01">
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
<div class="item">item</div>
</div>
<style>
.list01 {
width: 900px;
background: #ddd;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 2%;
}
.list01 .item {
margin-bottom: 25px;
height: 100px;
color: #fff;
background: #000;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
</style>
This is what it looks like when displayed in a browser.

What I dislike about gird is that I dislike grid-template-columns (. I don’t like grid-template-columns (…);
I’ve specified repeat(3, 1fr), so it looks like 3 columns are lined up with the width of 1fr. I think it should be….


