Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP C C++ C# AWS W3.CSS HOW TO BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING INTRO TO HTML & CSS BASH RUST TOOLS

HTML Tutorial

HTML HOME HTML Introduction HTML Editors HTML Basic HTML Elements HTML Attributes HTML Headings HTML Paragraphs HTML Styles HTML Formatting HTML Quotations HTML Comments HTML Colors HTML CSS HTML Links HTML Images HTML Project HTML Favicon HTML Page Title HTML Tables HTML Lists HTML Block & Inline HTML Div HTML Classes HTML Id HTML Buttons HTML Iframes HTML JavaScript HTML File Paths HTML Head HTML Layout HTML Responsive HTML Computercode HTML Semantics HTML Style Guide HTML Entities HTML Symbols HTML Emojis HTML Charsets HTML URL Encode HTML vs. XHTML

HTML Forms

HTML Forms HTML Form Attributes HTML Form Elements HTML Input Types HTML Input Attributes Input Form Attributes

HTML Graphics

HTML Canvas HTML SVG

HTML Media

HTML Media HTML Video HTML Audio HTML Plug-ins HTML YouTube

Web APIs

Web APIs Geolocation API Drag and Drop API Popover API Web Storage API Web Workers API Server-Sent Events API

HTML Cert

HTML Certificate

HTML Examples

HTML Examples HTML Editor HTML Quiz HTML Exercises HTML Challenges HTML Website HTML Syllabus HTML Study Plan HTML Interview Prep HTML Summary HTML Accessibility

HTML References

HTML Tag List HTML Attributes HTML Global Attributes HTML Browser Support HTML Event Attributes HTML Colors HTML Canvas HTML Audio/Video HTML Doctypes HTML Character Sets HTML URL Encode HTML Language Codes HTML Country Codes HTTP Status Codes HTTP Request Methods PX to EM Converter Keyboard Shortcuts

HTML Layout - Using CSS Grid


Share

HTML Layout - CSS Grid

CSS Grid is a layout method for arranging items in two directions at once: rows and columns. You turn it on by setting display: grid on a container.

The following example shows how you can layout a webpage using CSS grid:

Example

Cities

London

London is the capital city of England. It is the most populous city in the United Kingdom.

Standing on the River Thames, London has been a major settlement for two millennia, its history going back to its founding by the Romans, who named it Londinium.

Footer

Try it Yourself »


CSS Grid Layout - Pros and Cons

Pros:

  • Rows and columns together. Grid controls both directions at once, which makes it ideal for full page layouts
  • Easy to read. With grid-template-areas, you can almost "draw" the layout in your CSS
  • Items line up. Everything snaps to the same columns and rows, so the page looks neat and even
  • Simple sizing. The fr unit shares out free space, and repeat() and minmax() make columns easy to set up
  • Easy spacing. The gap property adds space between rows and columns
  • Easy centering. place-items: center; centers content in one line
  • Responsive with little code. You can redraw the whole layout for small screens by changing grid-template-areas, or use repeat(auto-fit, minmax(200px, 1fr)) to make columns that adjust to the screen width, without media queries
  • Simpler HTML. You need fewer wrapper <div> elements, because the layout lives in the CSS
  • Supported in all modern browsers

Cons:

  • More to learn. Grid has many properties and new things, like grid lines, tracks, areas, and the fr unit
  • Can be too much for small jobs. For a simple row of buttons or a nav bar, Flexbox is often easier
  • Less flexible for content of unknown size. Grid works best when you plan the structure. Flexbox handles items that should size themselves more naturally
  • Visual order can confuse users. Placing items in a different order than the HTML can make the page harder for keyboard and screen reader users

Should you use it?

Yes. Grid is the best choice for the overall page layout, such as header, nav, main, sidebar, and footer, and for galleries or card grids. A common approach is to use Grid for the page and Flexbox for the parts inside it, like menus and buttons.

Learn more about CSS grids in our CSS Grid chapter.


Free account

Track your progress

XP earned 0 Day streak 0 Spaces 0 League —

New

Learn in Adventure Mode W3Schools Adventure App

Coding fundamentals as bite-sized lessons and challenges.

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2026 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.