bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/CSS/Modern Layout
CSS•Modern Layout

Responsive Web Design - Building a Grid View

What is a Grid-View?

Many web pages are based on a grid-view , which means that the page is divided into rows and columns.

A responsive grid-view often has 6 or 12 columns, and will shrink and expand as you resize the browser window.

Building a Grid View

Lets start building a grid-view.

First ensure that all HTML elements have the box-sizing property set to border-box . This makes sure that the padding and border are included in the total width and height of the elements.

Add the following at the top of your CSS:

* {
 box-sizing: border-box;
}

Read more about the box-sizing property in our CSS Box Sizing chapter.

The HTML

We create a grid container with five grid items (header, menu, content, facts, footer):

Here is the complete HTML

<div class="grid-container"> <div class="header"><h1>Chania</h1></div>
<div class="menu"> <ul> <li>The
Flight</li> <li>The City</li>
<li>The Island</li> <li>The Food</li> </ul>
</div> <div class="content"> <h1>The City</h1>
<p>Chania is the capital of the Chania region on the island of Crete.</p>
<p>The city can be divided in two parts, the old town and the modern city. The
old town is situated next to the old harbour and is the matrix around which
the whole urban area was developed.</p> <p>Chania lies along the
north west coast of the island Crete.</p> </div> <div
class="facts"> <h2>Facts:</h2> <ul>
<li>Chania is a city on the island of Crete</li>
<li>Crete is a Greek island in the Mediterranean Sea</li> </ul>
</div> <div class="footer"><p>A footer.</p></div> </div>

The CSS

Add some styles and colors to make it look better:

Note

Look at the next chapter to add mediaqueries and breakpoints for different screen sizes!

Example

Formatted code
* {
  box-sizing: border-box;
}
body {
  font-family: "Lucida Sans", sans-serif;
  font-size: 17px;
} .grid-container {
display: grid;
grid-template-areas: 'header'
'menu'
'main'
'facts'
'footer';
background-color: white;
gap: 10px;
} .header {
grid-area: header;
background-color: purple;
text-align: center;
color: #ffffff;
} .header > h1 {
font-size: 40px;
} .menu {
grid-area: menu;
} .menu ul {
list-style-type: none;
margin: 0;
padding: 0;
} .menu li {
padding: 8px;
margin-bottom: 7px;
background-color: #33b5e5;
color: #ffffff;
} .menu li:hover {
background-color: #0099cc;
} .content {
grid-area: main;
} .content > h1 {
font-size: 30px;
margin-bottom: 7px;
} .content > p {
margin-bottom: 7px;
} .facts {
grid-area: facts;
border: 1px solid #0099cc;
background-color: beige;
padding: 10px;
} .facts > h2 {
font-size: 20px;
} .facts li {
margin-bottom: 5px;
} .footer {
grid-area: footer;
background-color: #0099cc;
color: #ffffff;
text-align: center;
}

Live preview

Previous

CSS Grid Tracks

Next

CSS Flexbox Align

This chapter

Overview
24

Lessons

64m

Read time

1. CSS Flexbox2. CSS Grid Layout3. Responsive Web Design4. CSS Flex Container5. CSS Grid Container6. Responsive Web Design - The Viewport7. CSS Flexbox justify-content8. CSS Grid Tracks9. Responsive Web Design - Building a Grid View10. CSS Flexbox Align11. CSS Grid Gap12. Responsive Web Design - Media Queries13. CSS Flex Items14. CSS Grid Container - Align Grid Content15. Responsive Web Design - Images16. CSS Responsive Flexbox17. CSS Grid Items18. Responsive Web Design - Frameworks19. CSS Naming Grid Items20. Responsive Web Design - Templates21. CSS Grid Items - Alignment22. CSS Grid Items - Order23. CSS 12-Column Grid Layout24. CSS @supports Rule

On this page

What is a Grid-View?Building a Grid ViewThe HTMLThe CSS