Back to Content

CSS grid layout

files/en-us/web/css/guides/grid_layout/index.md

latest7.2 KB
Original Source

The CSS grid layout module excels at dividing a page into major regions or defining the relationship in terms of size, position, and layering between parts of a control built from HTML primitives.

Like tables, grid layout enables an author to align elements into columns and rows. However, many more layouts are either possible or easier with CSS grid than they were with tables. For example, a grid container's child elements could position themselves so they actually overlap and layer, similar to CSS positioned elements.

Grid layout in action

The example shows a three-column track grid with new rows created at a minimum of 100 pixels and a maximum of auto. Items have been placed onto the grid using line-based placement.

html
<div class="wrapper">
  <div class="one">One</div>
  <div class="two">Two</div>
  <div class="three">Three</div>
  <div class="four">Four</div>
  <div class="five">Five</div>
  <div class="six">Six</div>
</div>
css
* {
  box-sizing: border-box;
}
.wrapper {
  max-width: 940px;
  margin: 0 auto;
}
.wrapper > div {
  border: 2px solid rgb(233 171 88);
  border-radius: 5px;
  background-color: rgb(233 171 88 / 50%);
  padding: 1em;
  color: #d9480f;
}
.wrapper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  grid-auto-rows: minmax(100px, auto);
}
.one {
  grid-column: 1 / 3;
  grid-row: 1;
}
.two {
  grid-column: 2 / 4;
  grid-row: 1 / 3;
}
.three {
  grid-column: 1;
  grid-row: 2 / 5;
}
.four {
  grid-column: 3;
  grid-row: 3;
}
.five {
  grid-column: 2;
  grid-row: 4;
}
.six {
  grid-column: 3;
  grid-row: 4;
}

{{EmbedLiveSample("Grid_layout_in_action", "100%", "460")}}

This sample animation uses {{cssxref("display")}}, {{cssxref("grid-template-columns")}}, {{cssxref("grid-template-rows")}}, and {{cssxref("gap")}} to create the grid, and {{cssxref("grid-column")}} and {{cssxref("grid-row")}} to position items within in the grid. To view and edit the HTML and CSS used, click the 'Play' at the top right of the example.

Reference

Properties

  • {{CSSxRef("grid-auto-columns")}}
  • {{CSSxRef("grid-auto-flow")}}
  • {{CSSxRef("grid-auto-rows")}}
  • {{CSSxRef("grid-template-columns")}}
  • {{CSSxRef("grid-template-rows")}}
  • {{CSSxRef("grid-template-areas")}}
  • {{CSSxRef("grid-template")}} shorthand
  • {{CSSxRef("grid")}} shorthand
  • {{CSSxRef("grid-column-start")}}
  • {{CSSxRef("grid-column-end")}}
  • {{CSSxRef("grid-column")}} shorthand
  • {{CSSxRef("grid-row-start")}}
  • {{CSSxRef("grid-row-end")}}
  • {{CSSxRef("grid-row")}} shorthand
  • {{CSSxRef("grid-area")}} shorthand

Functions

  • {{cssxref("repeat()")}}
  • {{cssxref("minmax()")}}
  • {{cssxref("fit-content()")}}

Data types and values

  • {{CSSxRef("<flex>")}} (fr unit)

Terms and glossary definitions

  • {{glossary("Grid")}}
  • {{glossary("Grid areas")}}
  • {{glossary("Grid axis")}}
  • {{glossary("Grid cell")}}
  • {{glossary("Grid column")}}
  • {{glossary("Grid container")}}
  • {{glossary("Grid lines")}}
  • {{glossary("Grid row")}}
  • {{glossary("Grid tracks")}}
  • {{glossary("Gutters")}}

Guides

CSS display module

  • {{CSSxRef("display")}}
  • {{CSSxRef("order")}}

CSS box alignment module

  • {{cssxref("align-content")}}
  • {{cssxref("align-items")}}
  • {{cssxref("align-self")}}
  • {{cssxref("column-gap")}}
  • {{cssxref("gap")}}
  • {{cssxref("justify-content")}}
  • {{cssxref("justify-items")}}
  • {{cssxref("justify-self")}}
  • {{cssxref("place-content")}}
  • {{cssxref("place-items")}}
  • {{cssxref("place-self")}}
  • {{cssxref("row-gap")}}

CSS box sizing module

  • {{cssxref("aspect-ratio")}}
  • {{cssxref("box-sizing")}}
  • {{cssxref("height")}}
  • {{cssxref("max-height")}}
  • {{cssxref("max-width")}}
  • {{cssxref("min-height")}}
  • {{cssxref("min-width")}}
  • {{cssxref("width")}}
  • {{cssxref("ratio")}} data type
  • {{cssxref("min-content")}} value
  • {{cssxref("max-content")}} value
  • {{cssxref("fit-content")}} value
  • {{cssxref("fit-content()")}} function

Specifications

{{Specifications}}

See also