Flexbox vs. CSS Grid — Which is Better?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
- One of the biggest questions people ask when they first learn about CSS Grid is, "Hey, does this replace Flexbox? "Should I use Grid instead of Flexbox?" No, that's not really how things are gonna work. So, Grid has been invented to do things that Flexbox couldn't do, and Flexbox is still a great tool for us to use to do things that Grid can't do. And we're also gonna use a lot of the other parts of CSS that we've used for layout for a long time. Floats, for example, there'll be plenty of times to use a float. And flow, the way the web pages get laid out, the way it's always been before CSS actually was invented, the way content flows down the page in a block direction or an in-line direction, these are all parts of a larger picture that we'll want to understand, and put Grid into that situation. We'll use Grid on certain parts of the page, and not on other parts of the page. It's not like the tools that we've been using, say, Bootstrap or Foundation, or 960 Grid, back in the day. It doesn't handle layout for the whole page. It handles layout for a particular container, one container on the page, and the items that are directly, a direct child of that container. So, you're gonna mix Grid with other things. You'll mix Grid with Flexbox. You'll mix Grid with a basic flow. You'll mix Grid with floats, with other kinds of things. So, why do you wanna use Flexbox? Why do you wanna use CSS Grid? Which ones should you use when? Flexbox is really great when you want to line things up in one direction. Maybe you could think of it as a whole bunch of boxes that are in an infinitely long line. Oh, but it's not infinitely long. It's actually a limited amount of space, so it happens to wrap, or doesn't wrap. Whether it wraps or not, the calculations that are being made are all happening one line at a time. The browser only ever thinks about things in one dimension at a time. It doesn't have any way to know if you happen, if you end up with several different rows, it doesn't calculate information across those rows, or if you're going in the other direction. It will calculate them in one direction and not in the other direction. Grid has the ability to line things up in two directions. And in fact, Grid always wants to line things up in two directions. You can't get it to kind of stagger things. It thinks about rows and columns at the same time, and it's gonna wanna make adjustments to your grid, based on what's going on in both of those directions at the same time. So, here's a diagram of a layout that you would do with Grid, where things are actually lining up in both directions. And here's a diagram of how things might work out in Flexbox, where the calculations are being done in each row, one at a time with no regard to the other rows, and you can see that those things don't actually line up. Perhaps, it's dependent on the size of the content, or the size of the amount of stuff that's on the page. Here's a diagram that really kind of shows you what Grid is good at, and what Flexbox is good at. There are some situations where Flexbox or Grid could be used, where they basically do the same thing. One thing though, that Grid can do that Flexbox cannot do, is intentionally overlap items. So if you're in a situation where maybe either one would work, but you want to overlap items, then that's gonna be a situation you definitely want to use Grid in. Here's an example where we've got images that are content images, not background images, but images in the content. And then, I've got a sentence for each one, and a little background colour on each of those sentences. The sentences are different lengths, so we don't wanna use some sort of absolute positioning, or something that's not gonna work for different amounts of content. We're gonna use Grid for this. But we're using Grid, we could use Flexbox, if there's no overlap, but because there's overlap, we wanna use Grid in this situation. So, get to know Grid, get to know Flexbox. Kind of know what each one is best at, and then use whichever one is best. It depends on which one has the super powers that you need at that moment.
Info
Channel: Layout Land
Views: 223,201
Rating: 4.9213533 out of 5
Keywords: CSS Grid, Flexbox, CSS, Web Design, Graphic Design, css, css grid tutorial, css grid layout, Jen Simmons, Mozilla, Firefox, Developer Tools, DevTools, Layout, Graphic design, Fonts, css grid, graphic design, minmax, flexibility, minmax content sizing, content sizing, Resilient CSS, responsive design, grid container, responsive web design, Resilient web design, web design, web development, grid layout, CSS Grid vs Flexbox, flexbox vs grid, Flexbox vs CSS Grid, grid vs flexbox
Id: hs3piaN4b5I
Channel Id: undefined
Length: 4min 18sec (258 seconds)
Published: Mon Jan 29 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.