CSS grid-template-rows Property


The grid-template-rows property determines the number, name and size of rows in a grid layout. In order to set the number, name and size of columns (tracks) in the grid layout, you can use the grid-template-columns property.

Initial value
Applies to
Grid containers
Computed value
As specified
CSS Version
JavaScript syntax


grid-template-rows: none | <track-list> | <auto-track-list>
<track-list> = [ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?
<auto-track-list> = [ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat>
[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?
<line-names> = '[' <custom-ident>* ']'
<track-size> = <track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )
<track-repeat> = repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )
<fixed-size> = <fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )
<fixed-repeat> = repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
<auto-repeat> = repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
<track-breadth> = <length-percentage> | <flex> | min-content | max-content | auto
<inflexible-breadth> = <length> | <percentage> | min-content | max-content | auto
<fixed-breadth> = <length-percentage>
<length-percentage> = <length> | <percentage>


  • noneA keyword meaning that no explicit layout grid is created. Any columns will be generated implicitly, and their size will be determined using the grid-auto-columns property. This is the default value.
  • length / percentageSpecifies the size of the columns using a valid length value, or a percentage value. The value must be positive.
  • flexNon-negative value in "flexible" units of measure fr ( fractional unit ). Each column occupies a part of the remaining space in the container of the layout grid in proportion to the given coefficient. For example, when using the value 1fr 2fr , the columns will occupy ⅓ and ⅔ of the remaining space, respectively. The total size of such rows or columns is subtracted from the available space, which gives the remaining space, which is then divided between the rows and columns of flexible size in proportion to their coefficient. Values ​​between 0fr and 1fr have somewhat special behavior, when the sum of the coefficients is less than 1, they will occupy less than 100% of the remaining space. When the available space is infinite (the width or height of the layout grid container is undefined), the size of the flexible grid columns is determined by their contents while maintaining the appropriate proportions.
  • max-contentA keyword that sets the size of each column based on the largest item in the column.
  • min-contentA keyword that sets the size of each column based on the smallest item in the column.
  • minmax (min, max)Functional notation that defines a range of sizes greater than or equal to min and less than or equal to max . If max is less than min , then max is ignored, and the function is treated as min . The value in "flexible" units of measurement as the maximum value sets the coefficient of flexibility of the column, this is not acceptable for determining the minimum.
  • autoThe size of the columns is determined by the size of the container and the size of the contents of the elements in the column. As a maximum, it is identical to the value of max-content , but at least it represents the largest minimum size. Automatic column sizes can be stretched using align-content properties and justify-content.
  • fit-content (length | percentage)This is the formula min (max-content, max (auto, argument)) , which is calculated by analogy with auto (that is, minmax (auto, max-content) ), except that the size of the column is clamped by the argument value, if it is larger than the automatic minimum.
  • repeat ([positive-integer | auto-fill | auto-fit], track-list)Represents a repeated fragment of the track list, allowing a large number of columns that exhibit a recurring pattern to be written in a more compact form.


<div class="grid-container">
<div class="grid-container2">
.grid-container2 {
   display: grid;
   margin-top: 5px;
   padding: 10px; 
   background: rgb(0,150,208);
.grid-container > div,
.grid-container2 > div { 
   background: rgb(241,101,41);
   border: 1px solid #000; 
   text-align: center; 
.grid-container {
   grid-template-rows: 90px auto 25px auto;
.grid-container2 {
   grid-template-rows: 1fr 1fr 2fr;

Browser Support

Explorer Edge Chrome Firefox Opera Safari
Tablets / Mobile
Android Chrome Firefox Opera Safari Samsung

Last updated by CSSPortal on: 6th November 2019