css shorthand property
`grid` CSS property
The grid CSS property is a shorthand property that sets all of the explicit and implicit grid properties in a single declaration.
Using grid you specify one axis using grid-template-rows or grid-template-columns, you then specify how content should auto-repeat in the other axis using the implicit grid properties: grid-auto-rows, grid-auto-columns, and grid-auto-flow.
grid: auto-flow / 1fr 1fr 1fr;
grid: auto-flow dense / 40px 40px 1fr;
grid: repeat(3, 80px) / auto-flow;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-gap: 10px;
width: 200px;
}
#example-element :nth-child(1) {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
#example-element :nth-child(2) {
background-color: rgb(255 0 200 / 0.2);
border: 3px solid rebeccapurple;
grid-column: auto / span 3;
grid-row: auto / span 2;
}
#example-element :nth-child(3) {
background-color: rgb(94 255 0 / 0.2);
border: 3px solid green;
grid-column: auto / span 2;
}
[!NOTE] The sub-properties you don’t specify are set to their initial value, as normal for shorthands. Also, the gutter properties are NOT reset by this shorthand.
Constituent properties
This property is a shorthand for the following CSS properties:
grid-auto-columnsgrid-auto-flowgrid-auto-rowsgrid-template-areasgrid-template-columnsgrid-template-rows
Syntax
/* <'grid-template'> values */
grid: none;
grid: "a" 100px "b" 1fr;
grid: [line-name1] "a" 100px [line-name2];
grid: "a" 200px "b" min-content;
grid: "a" minmax(100px, max-content) "b" 20%;
grid: 100px / 200px;
grid: minmax(400px, min-content) / repeat(auto-fill, 50px);
/* <'grid-template-rows'> /
[ auto-flow && dense? ] <'grid-auto-columns'>? values */
grid: 200px / auto-flow;
grid: 30% / auto-flow dense;
grid: repeat(3, 200px) / auto-flow 300px;
grid: [line1] minmax(20em, max-content) / auto-flow dense 40%;
/* [ auto-flow && dense? ] <'grid-auto-rows'>? /
<'grid-template-columns'> values */
grid: auto-flow / 200px;
grid: auto-flow dense / 30%;
grid: auto-flow 300px / repeat(3, 200px);
grid: auto-flow dense 40% / [line1] minmax(20em, max-content);
/* Global values */
grid: inherit;
grid: initial;
grid: revert;
grid: revert-layer;
grid: unset;
Values
-
<'grid-template'>- : Defines the
grid-templateincludinggrid-template-columns,grid-template-rowsandgrid-template-areas.
- : Defines the
-
<'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>?-
: Sets up an auto-flow by setting the row tracks explicitly via the
grid-template-rowsproperty (and thegrid-template-columnsproperty tonone) and specifying how to auto-repeat the column tracks viagrid-auto-columns(and settinggrid-auto-rowstoauto).grid-auto-flowis also set tocolumnaccordingly, withdenseif it’s specified.All other
gridsub-properties are reset to their initial values.
-
-
[ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>-
: Sets up an auto-flow by setting the column tracks explicitly via the
grid-template-columnsproperty (and thegrid-template-rowsproperty tonone) and specifying how to auto-repeat the row tracks viagrid-auto-rows(and settinggrid-auto-columnstoauto).grid-auto-flowis also set torowaccordingly, withdenseif it’s specified.All other
gridsub-properties are reset to their initial values.
-
Formal definition
Formal syntax
Examples
Creating a grid layout
HTML
<div id="container">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
CSS
#container {
display: grid;
grid: repeat(2, 60px) / auto-flow 80px;
}
#container > div {
background-color: #8ca0ff;
width: 50px;
height: 50px;
}