In a previous blog, I mentioned the difference between Grid and Flexbox being a two dimensional VS a one dimensional difference. But I didn't elaborate, and today I would like to take the chance to.
The Grid in CSS works in two dimensions at the same time. This means that it works on both the X and Y axis. If you remember the grids from way back in grade school, it actually turned out to be a great representation of this concept while simultaneously being EXACTLY that.
Flexbox in CSS works in one dimension at a time. Distinct from Grid, it only works on either the X axis OR the Y axis.
Grid and Flexbox both are able to operate based on columns and rows. Where the Grid represents itself as two-dimensional and Flexbox as one dimensional, these properties operate independently regardless of whether we set the items within them as a column or row.
I found a personal use that sets them apart on my personal portfolio where I display my skills. I used Grid since it did what Flexbox can't... to my knowledge. Please correct me if I'm wrong on this.
There is a property with grid that I used
grid-template-rows: 1fr 1fr 1fr which each stand for a fraction of the row space. There's some math involved in the background, but let's just leave at this: There are three items in one row, and they each take up 33.33333% of the total width of the grid container.
Flexbox offers another property called
flex-wrap: wrap which would allow for items to wrap to the bottom row when the screen is resized. Although we would provide a similar setup, Flexbox is operating on one dimension. Ultimately, I could not get the behavior I was seeking just using Flexbox.
Grid and Flexbox have their unique purpose in CSS. There could be an entire book we could write on using them individually or together, but I'll save your eyes. 😉 I'd like to give a disclaimer that I am not an expert in CSS, but I'm eager to keep learning about the technical concepts. Please share your thoughts in the comments.
Happy holidays, everyone!