SlideShare a Scribd company logo
CSS Grid
T A B L E L A Y O U T 2 . 0
2
3
Table Layout Grid Frameworks
4
CSS Grid
Grid Terminology
5
6
Grid Container
Grid Item Grid Item Grid Item
Grid Item Grid Item Grid Item
7
Grid Line
Grid Track
Grid Cell
Grid Area
Grid Container Props
8
9
display: grid;
1 0
grid-template-rows / grid-template-columns
Defines the columns and rows of the grid with a space separated list of value. Values represent track size and can be
a px length, percentage, or fraction of free space. Optional names can be given to the generated lines.
grid-template-columns: 40px 50px 1fr 2fr;
grid-column-gap / grid-row-gap
Defines the space between grid tracks.
grid-column-gap: 10px;
grid-row-gap: 15px;
grid-template-rows: [row1-start] 25% [row1-end] 100px [third-line] auto [last-line];
Repeat and minmax functions can also be used for more complex layouts.
grid-template-rows: repeat(4, minmax(20px, 50px) 100px);
1 1
justify-items / align-items
Justify-items aligns a grid items on the row axis, align-items aligns items on the column axis, inside grid cells. Values
can be start, end, center, or stretch (default).
justify-self: start;
justify-self: center;
align-self: end;
align-self: stretch;
justify-content / align-content
Sometimes the total size of your grid might be less than the size of its grid container. This could happen if all of your grid
items are sized with non-flexible units like px. Justify-content will align the grid on the row axis and align-content will align
the grid on the column axis. Values can be start, end, center, stretch, space-around, space-between, space-evenly.
justify-content: start;
justify-content: center;
align-content: space-around;
align-content: space-evenly;
Grid Item Props
1 2
1 3
grid-column-start / grid-column-end / grid-row-start / grid-row-end
Determines a grid item’s location within the grid by referring to specific grid lines. Value can be a number or name
referring to a grid line, “span <number | name>” to span until specified line is hit, or auto.
grid-column-start: 1;
grid-column-end: span col4-start;
grid-row-start: 2
grid-row-end: span 2
justify-self / align-self
Justify-self aligns a grid item on the row axis, align-self aligns on the column axis.
Values can be start, end, center, or stretch (default).
justify-self: start;
justify-self: center;
align-self: end;
align-self: stretch;
Grid Auto Flow
1 4
1 5
grid-auto-flow
If you have grid items that you don't explicitly place on the grid, the auto-placement algorithm kicks in to automatically
place the items. This property controls how the auto-placement algorithm works. It’s similar to flex-direction but with
one special super power.
grid-auto-flow: row;
grid-auto-flow: column;
grid-auto-flow: dense;
Grid Areas
1 6
1 7
grid-template-areas / grid-area
Defines a grid template by referencing the names of the grid areas which are specified with the grid-area property.
Repeating the name of a grid area causes the content to span those cells. A period signifies an empty cell. The syntax
itself provides a visualization of the structure of the grid.
.item-a { grid-area: header; }
.item-b { grid-area: main; }
.item-c { grid-area: sidebar; }
.item-d { grid-area: footer; }
.container {
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: auto;
grid-template-areas:
"header header header header"
"main main . sidebar"
"footer footer footer footer";
}
1 8
1 9
.header { grid-area: header; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
.footer { grid-area: footer; }
.container {
display: grid;
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: auto;
grid-template-areas:
"header header header header"
"main main . sidebar"
"footer footer footer footer";
}
2 0
.header { grid-area: header; }
.main { grid-area: main; }
.sidebar { grid-area: sidebar; }
.footer { grid-area: footer; }
.container {
display: grid;
grid-template-columns: 50px 50px 50px 50px;
grid-template-rows: auto;
grid-template-areas:
"header header header header"
"main main . sidebar"
"footer footer footer footer";
}
<div class="container">
<header class="header">Header</header>
<main class="main">Main</main>
<aside class="sidebar">Sidebar</aside>
<footer class="footer">Footer</footer>
</div>
2 1
Table Layout Grid Frameworks CSS Grid
Responsive
2 2
2 3
2 4
.cards {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
grid-gap: 30px;
max-width: 960px;
margin: 0 auto 30px;
}
2 5
.container {
grid-template-columns: 1fr 1fr;
grid-template-rows: auto;
grid-template-areas:
"header header"
"main main”
“sidebar footer”;
@media (——medium-screen) {
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-template-areas:
"header header header header"
"main main . sidebar"
"footer footer footer footer";
}
}
Animation
2 6
2 7
But what about Flex?
2 8
2 9
“The main idea behind the flex layout is to give the container
the ability to alter its items’ width/height (and order) to best
fill the available space (mostly to accommodate to all kind of
display devices and screen sizes).”
— Chris Coyier
3 0
• Flex is one dimensional. Grid is two dimensional.
• A core difference is that Grid’s approach is layout-
first while Flexbox’ approach is content-first.
• If you want to define a layout as a row or a column, that
flexes based on the content inside, then you probably
need flexbox.
• If you want to define a grid and fit content into it in two
dimensions  then  you probably need grid.
But what about Table?
3 1
3 2
Still use tables
…but for tables
3 3
Demo time…
CODEPEN

More Related Content

PPTX
Introducing CSS Grid
PPTX
music for mental health
PDF
CSS Day: CSS Grid Layout
PPTX
HTML Forms
PPTX
Flexbox
PPTX
Self improvement
PPTX
Html5 semantics
PPTX
Flex box
Introducing CSS Grid
music for mental health
CSS Day: CSS Grid Layout
HTML Forms
Flexbox
Self improvement
Html5 semantics
Flex box

What's hot (20)

PDF
Flexbox and Grid Layout
PPT
Cascading Style Sheets (CSS) help
PDF
Introduction to CSS Grid Layout
PDF
Intro to HTML and CSS basics
PPTX
1 03 - CSS Introduction
PPTX
CSS Flexbox (flexible box layout)
PPTX
Css types internal, external and inline (1)
PDF
World of CSS Grid
PPTX
Types of Selectors (HTML)
ODP
CSS Basics
PPTX
PDF
HTML and CSS crash course!
PPT
Introduction to Cascading Style Sheets (CSS)
PPTX
css.ppt
PDF
Introducing CSS Grid Layout
PDF
jQuery for beginners
PPTX
Html coding
PPTX
CSS - Text Properties
PPTX
Css Basics
Flexbox and Grid Layout
Cascading Style Sheets (CSS) help
Introduction to CSS Grid Layout
Intro to HTML and CSS basics
1 03 - CSS Introduction
CSS Flexbox (flexible box layout)
Css types internal, external and inline (1)
World of CSS Grid
Types of Selectors (HTML)
CSS Basics
HTML and CSS crash course!
Introduction to Cascading Style Sheets (CSS)
css.ppt
Introducing CSS Grid Layout
jQuery for beginners
Html coding
CSS - Text Properties
Css Basics
Ad

Similar to CSS Grid (20)

PDF
CSS Grid Layout
PDF
The Grid - The Future of CSS Layout
PDF
CSS Grid Layout - An Event Apart Orlando
PDF
CSS Grid Layout - All Things Open
PDF
CSS Grid Layout
PDF
An Event Apart Nashville: CSS Grid Layout
PDF
Making the most of New CSS Layout
PDF
CSS Grid Layout for Frontend NE
PPT
17523630.ppt
PDF
An Event Apart SF: CSS Grid Layout
PDF
Devoxx Belgium: CSS Grid Layout
PDF
CSS Grid Layout
PDF
CSS Grid Layout: An Event Apart Boston 2016
PDF
CSS Grid Layout for Topconf, Linz
PDF
CSS Grid for html5j
PDF
Talk Web Design: Get Ready For CSS Grid Layout
PDF
AEA Chicago CSS Grid Layout
PDF
DevFest Nantes - Start Using CSS Grid Layout today
PDF
Laying out the future with grid & flexbox - Smashing Conf Freiburg
PDF
Frontend United: Start using CSS Grid Layout today!
CSS Grid Layout
The Grid - The Future of CSS Layout
CSS Grid Layout - An Event Apart Orlando
CSS Grid Layout - All Things Open
CSS Grid Layout
An Event Apart Nashville: CSS Grid Layout
Making the most of New CSS Layout
CSS Grid Layout for Frontend NE
17523630.ppt
An Event Apart SF: CSS Grid Layout
Devoxx Belgium: CSS Grid Layout
CSS Grid Layout
CSS Grid Layout: An Event Apart Boston 2016
CSS Grid Layout for Topconf, Linz
CSS Grid for html5j
Talk Web Design: Get Ready For CSS Grid Layout
AEA Chicago CSS Grid Layout
DevFest Nantes - Start Using CSS Grid Layout today
Laying out the future with grid & flexbox - Smashing Conf Freiburg
Frontend United: Start using CSS Grid Layout today!
Ad

More from Digital Surgeons (20)

PDF
Navigating Your Brand Through Covid-19
PDF
SVG Animations
PDF
Machine learning
PDF
CraftCMS 3.x Deep Dive
PDF
Creating great decks: The Origins, the "Why", and 12 Tips to Make Yours Better.
PDF
The Science of Story: How Brands Can Use Storytelling To Get More Customers
PDF
In Content Strategy, L.E.S.S. is More
PDF
Unlock Your Organization Through Digital Transformation
PDF
Radical Candor: No BS, helping your team create better work.
PDF
Unlocking Creativity: How to Harness the Powers of Design, Art Direction & Cr...
PDF
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
PDF
Typecurious: A Typography Crash Course
PDF
Better Twitch Broadcasting through Rapid Prototyping & Human Centered Design
PDF
How to Stream Video Games: A Primer on Twitch.tv
PDF
Art, Meet Copy: A Copywriting Primer for Designers
PDF
Creating Powerful Customer Experiences
PDF
How to Build a Brand Voice Toolkit
PDF
Design Thinking: The one thing that will transform the way you think
PDF
What You Need to Know About the Future of Wearable Technology
PDF
How YouTube is Drastically Changing the Beauty Industry
Navigating Your Brand Through Covid-19
SVG Animations
Machine learning
CraftCMS 3.x Deep Dive
Creating great decks: The Origins, the "Why", and 12 Tips to Make Yours Better.
The Science of Story: How Brands Can Use Storytelling To Get More Customers
In Content Strategy, L.E.S.S. is More
Unlock Your Organization Through Digital Transformation
Radical Candor: No BS, helping your team create better work.
Unlocking Creativity: How to Harness the Powers of Design, Art Direction & Cr...
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Typecurious: A Typography Crash Course
Better Twitch Broadcasting through Rapid Prototyping & Human Centered Design
How to Stream Video Games: A Primer on Twitch.tv
Art, Meet Copy: A Copywriting Primer for Designers
Creating Powerful Customer Experiences
How to Build a Brand Voice Toolkit
Design Thinking: The one thing that will transform the way you think
What You Need to Know About the Future of Wearable Technology
How YouTube is Drastically Changing the Beauty Industry

Recently uploaded (20)

PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PPT
Mechanical Engineering MATERIALS Selection
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
Internet of Things (IOT) - A guide to understanding
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
Geodesy 1.pptx...............................................
PPTX
additive manufacturing of ss316l using mig welding
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
DOCX
573137875-Attendance-Management-System-original
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Lecture Notes Electrical Wiring System Components
PDF
composite construction of structures.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Mechanical Engineering MATERIALS Selection
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
Model Code of Practice - Construction Work - 21102022 .pdf
Arduino robotics embedded978-1-4302-3184-4.pdf
Internet of Things (IOT) - A guide to understanding
UNIT 4 Total Quality Management .pptx
Geodesy 1.pptx...............................................
additive manufacturing of ss316l using mig welding
bas. eng. economics group 4 presentation 1.pptx
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Operating System & Kernel Study Guide-1 - converted.pdf
573137875-Attendance-Management-System-original
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
OOP with Java - Java Introduction (Basics)
Lecture Notes Electrical Wiring System Components
composite construction of structures.pdf

CSS Grid

  • 1. CSS Grid T A B L E L A Y O U T 2 . 0
  • 2. 2
  • 3. 3 Table Layout Grid Frameworks
  • 6. 6 Grid Container Grid Item Grid Item Grid Item Grid Item Grid Item Grid Item
  • 10. 1 0 grid-template-rows / grid-template-columns Defines the columns and rows of the grid with a space separated list of value. Values represent track size and can be a px length, percentage, or fraction of free space. Optional names can be given to the generated lines. grid-template-columns: 40px 50px 1fr 2fr; grid-column-gap / grid-row-gap Defines the space between grid tracks. grid-column-gap: 10px; grid-row-gap: 15px; grid-template-rows: [row1-start] 25% [row1-end] 100px [third-line] auto [last-line]; Repeat and minmax functions can also be used for more complex layouts. grid-template-rows: repeat(4, minmax(20px, 50px) 100px);
  • 11. 1 1 justify-items / align-items Justify-items aligns a grid items on the row axis, align-items aligns items on the column axis, inside grid cells. Values can be start, end, center, or stretch (default). justify-self: start; justify-self: center; align-self: end; align-self: stretch; justify-content / align-content Sometimes the total size of your grid might be less than the size of its grid container. This could happen if all of your grid items are sized with non-flexible units like px. Justify-content will align the grid on the row axis and align-content will align the grid on the column axis. Values can be start, end, center, stretch, space-around, space-between, space-evenly. justify-content: start; justify-content: center; align-content: space-around; align-content: space-evenly;
  • 13. 1 3 grid-column-start / grid-column-end / grid-row-start / grid-row-end Determines a grid item’s location within the grid by referring to specific grid lines. Value can be a number or name referring to a grid line, “span <number | name>” to span until specified line is hit, or auto. grid-column-start: 1; grid-column-end: span col4-start; grid-row-start: 2 grid-row-end: span 2 justify-self / align-self Justify-self aligns a grid item on the row axis, align-self aligns on the column axis. Values can be start, end, center, or stretch (default). justify-self: start; justify-self: center; align-self: end; align-self: stretch;
  • 15. 1 5 grid-auto-flow If you have grid items that you don't explicitly place on the grid, the auto-placement algorithm kicks in to automatically place the items. This property controls how the auto-placement algorithm works. It’s similar to flex-direction but with one special super power. grid-auto-flow: row; grid-auto-flow: column; grid-auto-flow: dense;
  • 17. 1 7 grid-template-areas / grid-area Defines a grid template by referencing the names of the grid areas which are specified with the grid-area property. Repeating the name of a grid area causes the content to span those cells. A period signifies an empty cell. The syntax itself provides a visualization of the structure of the grid. .item-a { grid-area: header; } .item-b { grid-area: main; } .item-c { grid-area: sidebar; } .item-d { grid-area: footer; } .container { grid-template-columns: 50px 50px 50px 50px; grid-template-rows: auto; grid-template-areas: "header header header header" "main main . sidebar" "footer footer footer footer"; }
  • 18. 1 8
  • 19. 1 9 .header { grid-area: header; } .main { grid-area: main; } .sidebar { grid-area: sidebar; } .footer { grid-area: footer; } .container { display: grid; grid-template-columns: 50px 50px 50px 50px; grid-template-rows: auto; grid-template-areas: "header header header header" "main main . sidebar" "footer footer footer footer"; }
  • 20. 2 0 .header { grid-area: header; } .main { grid-area: main; } .sidebar { grid-area: sidebar; } .footer { grid-area: footer; } .container { display: grid; grid-template-columns: 50px 50px 50px 50px; grid-template-rows: auto; grid-template-areas: "header header header header" "main main . sidebar" "footer footer footer footer"; } <div class="container"> <header class="header">Header</header> <main class="main">Main</main> <aside class="sidebar">Sidebar</aside> <footer class="footer">Footer</footer> </div>
  • 21. 2 1 Table Layout Grid Frameworks CSS Grid
  • 23. 2 3
  • 24. 2 4 .cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); grid-gap: 30px; max-width: 960px; margin: 0 auto 30px; }
  • 25. 2 5 .container { grid-template-columns: 1fr 1fr; grid-template-rows: auto; grid-template-areas: "header header" "main main” “sidebar footer”; @media (——medium-screen) { grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-areas: "header header header header" "main main . sidebar" "footer footer footer footer"; } }
  • 27. 2 7
  • 28. But what about Flex? 2 8
  • 29. 2 9 “The main idea behind the flex layout is to give the container the ability to alter its items’ width/height (and order) to best fill the available space (mostly to accommodate to all kind of display devices and screen sizes).” — Chris Coyier
  • 30. 3 0 • Flex is one dimensional. Grid is two dimensional. • A core difference is that Grid’s approach is layout- first while Flexbox’ approach is content-first. • If you want to define a layout as a row or a column, that flexes based on the content inside, then you probably need flexbox. • If you want to define a grid and fit content into it in two dimensions  then  you probably need grid.
  • 31. But what about Table? 3 1
  • 32. 3 2 Still use tables …but for tables