grid-template-rows
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2017å¹´10æâ©.
* Some parts of this feature may have varying levels of support.
grid-template-rows è¯¥å±æ§æ¯åºäº ç½æ ¼è¡ ç维度ï¼å»å®ä¹ç½æ ¼çº¿çåç§°åç½æ ¼è½¨éç尺寸大å°ã
å°è¯ä¸ä¸
grid-template-rows: auto;
grid-template-rows: 40px 4em 40px;
grid-template-rows: 1fr 2fr 1fr;
grid-template-rows: 3ch auto minmax(10px, 60px);
<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>Four</div>
<div>Five</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 10px;
width: 200px;
}
#example-element > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
è¯æ³
/* Keyword value */
grid-template-rows: none;
/* <track-list> values */
grid-template-rows: 100px 1fr;
grid-template-rows: [linename] 100px;
grid-template-rows: [linename1] 100px [linename2 linename3];
grid-template-rows: minmax(100px, 1fr);
grid-template-rows: fit-content(40%);
grid-template-rows: repeat(3, 200px);
/* <auto-track-list> values */
grid-template-rows: 200px repeat(auto-fill, 100px) 300px;
grid-template-rows:
minmax(100px, max-content)
repeat(auto-fill, 200px) 20%;
grid-template-rows:
[linename1] 100px [linename2]
repeat(auto-fit, [linename3 linename4] 300px)
100px;
grid-template-rows:
[linename1 linename2] 100px
repeat(auto-fit, [linename1] 300px) [linename3];
/* Global values */
grid-template-rows: inherit;
grid-template-rows: initial;
grid-template-rows: unset;
è¯¥å±æ§å¯è½å å«å¦ä¸å¼ï¼
- å
³é®å
none - æè
<track-list>å¼ - æè
<auto-track-list>å¼ã
å¼
none-
è¿ä¸ªå ³é®åè¡¨ç¤ºä¸æç¡®çç½æ ¼ãææçè¡åå ¶å¤§å°é½å°ç±
grid-auto-rows屿§éå¼çæå®ã <length>-
éè´å¼çé¿åº¦å¤§å°ã
<percentage>-
éè´å¼ä¸ç¸å¯¹äºç½æ ¼å®¹å¨ç
<ç¾åæ¯>ãå¦æç½æ ¼å®¹å¨ç尺寸大å°ä¾èµç½æ ¼è½¨éç大å°ï¼æ¯å¦ inline-gridï¼ï¼åç¾åæ¯å¼å°è¢«è§ä¸ºautoã 为äºéµå®ç½æ ¼çç¾åæ¯ï¼ç½æ ¼è½¨éæ¬èº«å®ä¹ç大å°ï¼å°èªå¨è¢«è°æ´ä¸ºç¸å¯¹ç½æ ¼å®¹å¨å¤§å°ï¼å¹¶ä¸æ¯ä»¥æå°éå°ç½æ ¼è½¨éè°æ´å°æç»ç大å°ã <flex>-
éè´å¼ï¼ç¨åä½
fræ¥å®ä¹ç½æ ¼è½¨é大å°çå¼¹æ§ç³»æ°ãæ¯ä¸ªå®ä¹äº<flex>çç½æ ¼è½¨é伿æ¯ä¾åé å©ä½çå¯ç¨ç©ºé´ãå½å¤å±ç¨ä¸ä¸ªminmax()表示æ¶ï¼å®å°æ¯ä¸ä¸ªèªå¨æå°å¼ (å³minmax(auto, <flex>)) ã max-content-
æ¯ä¸ä¸ªç¨æ¥è¡¨ç¤ºä»¥ç½æ ¼é¡¹çæå¤§çå 容æ¥å æ®ç½æ ¼è½¨éçå ³é®åã
min-content-
æ¯ä¸ä¸ªç¨æ¥è¡¨ç¤ºä»¥ç½æ ¼é¡¹çæå¤§çæå°å 容æ¥å æ®ç½æ ¼è½¨éçå ³é®åã
minmax(min, max)-
æ¯ä¸ä¸ªæ¥å®ä¹å¤§å°èå´ç屿§ï¼å¤§äºçäº min å¼ï¼å¹¶ä¸å°äºçäº max å¼ã妿 max å¼å°äº min å¼ï¼å该å¼ä¼è¢«è§ä¸º min å¼ãæå¤§å¼å¯ä»¥è®¾ç½®ä¸ºç½æ ¼è½¨éç³»æ°å¼
<flex>ï¼ä½æå°å¼åä¸è¡ãNote: 该è§èå¨å°æ¥å¯è½ä¼å 许设置æå°å¼ä¸º
flexï¼ä¹ä¼è°æ´ç½æ ¼è½¨éç®æ³ (track sizing algorithm) 计ç®åºæ£ç¡®ç大å°ã auto-
å¦æè¯¥ç½æ ¼è½¨é为æå¤§æ¶ï¼è¯¥å±æ§çåäº
<max-content>ï¼ä¸ºæå°æ¶ï¼åçåäº<min-content>ãNote: ç½æ ¼è½¨é大å°ä¸º
auto(ä¸åªæä¸ºauto) æ¶ï¼æå¯ä»¥è¢«å±æ§align-contentåjustify-contentæä¼¸ã fit-content( [ <length> | <percentage> ] )-
ç¸å½äºå ¬å¼
min(max-content, max(auto, argument))ï¼ç±»ä¼¼äºautoçè®¡ç® (å³minmax(auto, max-content))ï¼é¤äºç½æ ¼è½¨é大å°å¼æ¯ç¡®å®ä¸æ¥çï¼å¦å该å¼é½å¤§äºautoçæå°å¼ã repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )-
è¡¨ç¤ºç½æ ¼è½¨éçéå¤é¨åï¼ä»¥ä¸ç§æ´ç®æ´çæ¹å¼å»è¡¨ç¤ºå¤§éèä¸éå¤è¡ç表达å¼ã
æ£å¼è¯æ³
grid-template-rows =
none |
<track-list> |
<auto-track-list> |
subgrid <line-name-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-name-list> =
[ <line-names> | <name-repeat> ]+
<line-names> =
'[' <custom-ident>* ']'
<track-size> =
<track-breadth> |
minmax( <inflexible-breadth> , <track-breadth> ) |
fit-content( <length-percentage [0,â]> )
<track-repeat> =
repeat( [ <integer [1,â]> ] , [ <line-names>? <track-size> ]+ <line-names>? )
<fixed-size> =
<fixed-breadth> |
minmax( <fixed-breadth> , <track-breadth> ) |
minmax( <inflexible-breadth> , <fixed-breadth> )
<fixed-repeat> =
repeat( [ <integer [1,â]> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
<auto-repeat> =
repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )
<name-repeat> =
repeat( [ <integer [1,â]> | auto-fill ] , <line-names>+ )
<track-breadth> =
<length-percentage [0,â]> |
<flex [0,â]> |
min-content |
max-content |
auto
<inflexible-breadth> =
<length-percentage [0,â]> |
min-content |
max-content |
auto
<length-percentage> =
<length> |
<percentage>
<fixed-breadth> =
<length-percentage [0,â]>
示ä¾
>CSS
#grid {
display: grid;
height: 100px;
grid-template-rows: 30px 1fr;
}
#areaA {
background-color: lime;
}
#areaB {
background-color: yellow;
}
HTML
<div id="grid">
<div id="areaA">A</div>
<div id="areaB">B</div>
</div>
ç»æ
è§è
| Specification |
|---|
| CSS Grid Layout Module Level 2 > # track-sizing > |
| CSS Grid Layout Module Level 2 > # subgrids > |
| åå§å¼ | none |
|---|---|
| éç¨å ç´ | ç½æ ¼å®¹å¨ |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| Percentages | refer to corresponding dimension of the content area |
| 计ç®å¼ | as specified, but with relative lengths converted into absolute lengths |
| å¨ç»ç±»å | simple list of length, percentage, or calc, provided the only differences are in the values of the length, percentage, or calc components in the list |
æµè§å¨å ¼å®¹æ§
åè§
- ç¸å
³ CSS 屿§ï¼
grid-template-columns,grid-template-areas,grid-template - ç½æ ¼å¸å±æåï¼Basic concepts of grid layout - Grid Tracks
- è§é¢æç¨ï¼Defining a Grid