INTRO

INTRO

New

Intro to the Designer

Intro to the Designer

New

2:48

Intro to HTML & CSS

Intro to HTML & CSS

New

3:38

HTML Structure

HTML Structure

New

1:55

WEB STRUCTURE

WEB STRUCTURE

New

The Box Model

The Box Model

New

1:54

Element Hierarchy

Element Hierarchy

New

3:57

Navigator Panel

Navigator Panel

New

2:45

ELEMENTS

ELEMENTS

New

Element Panel

Element Panel

New

1:49

Section

Section

New

4:14

Container

Container

New

2:44

Columns

Columns

New

2:22

Div block

Div block

New

3:37

Buttons & Links

Buttons & Links

New

Button

Button

New

14:08

Link Block

Link Block

New

9:35

Text Link

Text Link

New

1:16

Typography

Typography

New

3:20

Heading

Heading

New

2:02

Paragraph

Paragraph

New

4:42

Rich Text

Rich Text

New

3:52

Text Block

Text Block

New

0:56

Block Quote

Block Quote

New

0:42

List

List

New

2:31

Media

Media

New

Image

Image

New

3:39

Image File Types

Image File Types

New

2:22

Image Resolution

Image Resolution

New

3:28

Assets Panel

Assets Panel

New

3:08

Video

Video

New

1:20

Background Video

Background Video

New

3:15

Components

Components

New

Intro to Forms

Intro to Forms

New

4:55

Styling Forms

Styling Forms

New

2:55

Navbar

Navbar

New

9:38

Styling a Navbar

Styling a Navbar

New

4:34

Navbar Menu Button

Navbar Menu Button

New

4:51

Slider

Slider

New

4:56

Tabs

Tabs

New

4:38

Lightbox

Lightbox

New

3:44

Map

Map

New

2:58

Dropdown

Dropdown

New

4:38

Social Media Buttons

Social Media Buttons

New

2:49

Custom Code Embed

Custom Code Embed

New

1:24

Symbols

Symbols

New

3:47

Styling Basics

Styling Basics

New

Intro to Style Panel

Intro to Style Panel

New

3:15

HTML Tags

HTML Tags

New

3:59

Classes

Classes

New

2:46

Combo Classes

Combo Classes

New

4:05

Text Style Inheritance

Text Style Inheritance

New

3:18

Style Manager

Style Manager

New

1:56

States

States

New

2:47

Transitions

Transitions

New

2:40

Color Picker & Swatches

Color Picker & Swatches

New

3:51

Color Values

Color Values

New

3:22

Layout Basics

Layout Basics

New

Intro to Web Layout

Intro to Web Layout

New

2:27

Display Settings

Display Settings

New

2:54

Padding & Margin

Padding & Margin

New

2:48

Width & Height Units

Width & Height Units

New

3:59

Floats & Clears

Floats & Clears

New

1:52

Flexbox & Grid

Flexbox & Grid

New

Intro to Flexbox

Intro to Flexbox

New

2:27

Centering elements with Flexbox

Centering elements with Flexbox

New

1:20

Equal height layouts with Flexbox

Equal height layouts with Flexbox

New

1:47

Grid layouts overview

Grid layouts overview

New

4:18

Flexbox vs. Grid

Flexbox vs. Grid

New

4:00

Advanced Layout

Advanced Layout

New

Positioning Overview

Positioning Overview

New

1:48

Relative Positioning

Relative Positioning

New

1:43

Absolute Positioning

Absolute Positioning

New

1:43

Fixed Positioning

Fixed Positioning

New

1:27

Z-Index

Z-Index

New

1:49

Overflow

Overflow

New

1:49

Styling Typography

Styling Typography

New

Intro to Web Typography

Intro to Web Typography

New

3:20

Typography Units

Typography Units

New

2:43

Line Height

Line Height

New

1:38

Advanced Typography Styles

Advanced Typography Styles

New

3:01

Google Fonts

Google Fonts

New

1:18

Custom Fonts

Custom Fonts

New

1:27

Text Shadow

Text Shadow

New

2:36

Background & Border Styles

Background & Border Styles

New

Background Styles Overview

Background Styles Overview

New

2:20

Background Image

Background Image

New

2:04

Background Gradient

Background Gradient

New

3:02

Border

Border

New

3:07

Border Radius

Border Radius

New

3:22

Box Shadow

Box Shadow

New

3:34

3D Styles

3D Styles

New

Intro to 3D

Intro to 3D

New

2:25

3D Perspective

3D Perspective

New

4:01

2D & 3D Transforms

2D & 3D Transforms

New

4:53

EFFECTS

EFFECTS

New

Opacity

Opacity

New

1:44

Filters

Filters

New

2:59

Cursors

Cursors

New

1:45

Responsive Design

Responsive Design

New

new course
CSS grid landing page tutorial (36min)

Lesson info

Lesson info

Explore this project

Want to dig into the project featured in this video and see how everything is put together? We've included the full project we used when making this lesson, and we've shared the link right under this very paragraph.

View and clone this projectDownload lesson assets
Clone this projectDownload project assets

Transcript

Flexbox. Grid. When on earth do we use each of these? Great question. Let's talk about when on earth we use each of these.

Flexbox. It gives us layout controls in one dimension. Here are a bunch of things inside a section. Flexbox, of course, lets us organize these things horizontally in one direction. It lets us organize these things vertically in one direction. And we can adjust justification and  alignment controls inside each of these. And the children themselves? We can override those settings, too.

That's flexbox.

What about grid? Grid gives us layout controls that can work in two dimensions. Here are a bunch of things inside a section again. Grid lets us organize wherever we want inside of our grid cells. Just like flexbox, we can adjust the positioning for these elements by making adjustments to our parent (our grid itself). And also like flexbox, we can override the positioning on the child elements, too.

That's grid.

And that’s where a lot of people might move on after saying “Enough. We get it. Flexbox for one-dimensional stuff and grid for two-dimensional stuff.”

It’s not that simple. Let’s bring in a pedestrian. And a car. And the city of San Francisco. Layout is a bit like transportation. If you start one place and your goal is to end in another, it might make sense to evaluate the most efficient form of travel.

In other words, sometimes it makes more sense to walk. Sometimes it makes more sense to drive. What if you’re in Union Square trying to get over to the Apple Store? Walking might make more sense here.

Maybe you need to go to Artichoke in Berkeley. Might make more sense to take a car or take public transit.

This is really similar to how we can think about flexbox and grid. Same idea here.

  1. Pretty easy to think of this as a grid, so we’ll draw out some grid lines. This would be great for grid. Could we create it with flex? Sure. But it might take a lot, lot longer.
  2. How about a magazine layout? Pretty easy to draw a grid around this, too. So this one, pretty straightforward in grid.
  3. Now what about this one? Generally in one direction. Pretty great candidate for flexbox.
  4. Vertical layout? Might be more straightforward with flexbox as well.
  5. Periodic table? Content organized along two dimensions? Probably grid.
  6. What about this layout? Kind of a newspaper layout. Grid would be great for this.
  7. How about a custom navigation bar with equally spaced links? Using flex, we can easily justify the space in between.
  8. John Nash cracking the Russian codes? Probably grid. Which, by the way, you can put a grid...inside another grid.
  9. Here’s where it gets a bit more nuanced. What if we have a footer with four main pieces? Logo, navigation, copyright blurb, and social buttons? Well it’s one-directional. But what about on a phone? That’s a lot to scrunch into such a narrow viewport. We can do this with flex, where each of these is set to 25% on desktop, then 50% each on tablet, and each at full width (100%) on mobile devices. This might be a good option.

    Or...just thinking differently here, we could use grid. We could use a 4-by-4. Then on tablet, we can make some adjustments by rearranging and having each block take up 2x2. There are a thousand ways to do this. Same thing on mobile — same thing when we move down to mobile. We can keep going to use our grid on each breakpoint as a guide.

    Some people might prefer to use flex for this; others might prefer to use grid.

And that’s the point here: if you’re not 100% sure after all of this whether you should be using grid or flexbox or a combo of both? That’s good. Because just like sometimes it makes more sense to walk or bike or drive or warp, grid is another option. Another tool in our design and development toolbox.

So. Flexbox: great for a lot of one-dimensional layouts. Grid: great for a lot of two dimensional layouts. But there are always exceptions. If someone tries to simplify with a 100%-of-the-time rule? We instead recommend trying it for yourself. Pick the tool that best suits what you’re trying to build — the way you want to build it.

But that’s our top-level comparison of flex and grid. We’re going to be adding a bunch of layout examples to our grid course. Check back as we build more and more using grid in Webflow.