grid-template-columns
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ì.
grid-template-columns CSS ìì±ì grid columnsì ì´ ì´ë¦ê³¼ í¸ë í¬ê¸° ì¡°ì í¨ìë¤ì ì ìí©ëë¤.
ìëí´ ë³´ê¸°
grid-template-columns: 60px 60px;
grid-template-columns: 1fr 60px;
grid-template-columns: 1fr 2fr;
grid-template-columns: 8ch auto;
<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-auto-rows: 40px;
grid-gap: 10px;
width: 200px;
}
#example-element > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
구문
/* Keyword value */
grid-template-columns: none;
/* <track-list> values */
grid-template-columns: 100px 1fr;
grid-template-columns: [linename] 100px;
grid-template-columns: [linename1] 100px [linename2 linename3];
grid-template-columns: minmax(100px, 1fr);
grid-template-columns: fit-content(40%);
grid-template-columns: repeat(3, 200px);
grid-template-columns: subgrid;
grid-template-columns: masonry;
/* <auto-track-list> values */
grid-template-columns: 200px repeat(auto-fill, 100px) 300px;
grid-template-columns:
minmax(100px, max-content)
repeat(auto-fill, 200px) 20%;
grid-template-columns:
[linename1] 100px [linename2]
repeat(auto-fit, [linename3 linename4] 300px)
100px;
grid-template-columns:
[linename1 linename2] 100px
repeat(auto-fit, [linename1] 300px) [linename3];
/* Global values */
grid-template-columns: inherit;
grid-template-columns: initial;
grid-template-columns: revert;
grid-template-columns: revert-layer;
grid-template-columns: unset;
ê°
-
none- ëª
ìì 그리ëê° ììì ì미í©ëë¤. 모ë ì´ì ììì ì¼ë¡ ìì±ëê³ ê° ì´ì í¬ê¸°ë
grid-auto-columnsìì±ì ìí´ ê²°ì ë©ëë¤.
- ëª
ìì 그리ëê° ììì ì미í©ëë¤. 모ë ì´ì ììì ì¼ë¡ ìì±ëê³ ê° ì´ì í¬ê¸°ë
-
[linename]- í´ë¹ ìì¹ì ê° ì´ì ëí ì´ë¦ì ëª
ìíë
<custom-ident>ì ëë¤. identë ìì½ì´ì¸spanì´ëauto를 ì ì¸í ì´ë¤ 문ìì´ì´ë ì¬ ì ììµëë¤. íìë[line-name-a line-name-b]ì ê°ì´ ëê´í¸ ìì 공백ì¼ë¡ 구ë¶ë ì¬ë¬ ì´ë¦ì ê°ì§ ì ììµëë¤.
- í´ë¹ ìì¹ì ê° ì´ì ëí ì´ë¦ì ëª
ìíë
<length>- ììê° ìë 길ì´, ì´ì ëë¹ë¥¼ ëíë ëë¤.
<percentage>-
ììê° ìë 그리ë 컨í ì´ëì ë´ë¶ í¬ê¸°ì ìëì ì¸
<percentage>ê°ì ëë¤. ë§ì½ 그리ë 컨í ì´ëì í¬ê¸°ê° í¸ëì í¬ê¸°ì ë°ë¼ ë¬ë¼ì§ë ê²½ì°, ë°±ë¶ì¨ìautoë¡ ì²ë¦¬í´ì¼ í©ëë¤.í¸ëì 본ì§ì ì¸ í¬ê¸° 기ì¬ë 그리ë 컨í ì´ëì í¬ê¸°ë¡ ì¡°ì ë ì ìì¼ë©°, í¸ëì ìµì¢ í¬ê¸°ë¥¼ ë°±ë¶ì¨ì ë§ë ìµì í¬ê¸° ë§í¼ ì¦ê°ìí¬ ì ììµëë¤.
-
<flex>-
í¸ëì Flex ìì를 ì§ì íë
frë¨ì를 ê°ì§ë ìì´ ìë ì¹ìì ëë¤. ê°ê°ì<flex>ì í¬ê¸°ê° ì í´ì§ í¸ëì flex ììì ë¹ë¡íì¬ ëë¨¸ì§ ê³µê°ì ì°¨ì§í©ëë¤.minmax()ì¸ë¶ìì ì¬ì©íë©´, ì´ë ìë ìµìê° ì¦minmax(auto, <flex>)를 ì미í©ëë¤.
-
max-content- 그리ë í¸ëì ì°¨ì§íë 그리ë í목ì ê°ì¥ í° ìµë ì½í ì¸ ê¸°ì¬ë를 ì미í©ëë¤. ì를 ë¤ì´, ë§ì½ 그리ë í¸ëì 첫ë²ì§¸ ììê° "Repetitio est mater studiorum"ë¼ë 문ì¥ì í¬í¨íê³ , ëë²ì§¸ ììê° "Dum spiro, spero"ë¼ë 문ì¥ì í¬í¨íë¤ë©´, ìµë ì½í ì¸ ê¸°ì¬ë 모ë 그리ë ìì ì¤ìì ê°ì¥ 긴 "Repetitio est mater studiorum"ì í¬ê¸°ë¡ ì§ì ë©ëë¤.
min-content- 그리ë í¸ëì ì°¨ì§íë 그리ë í목ì ê°ì¥ í° ìµì ì½í ì¸ ê¸°ì¬ë 를 ëíë ëë¤. ì를 ë¤ì´ 그리ë í¸ëì 첫ë²ì§¸ ììê° "Repetitio est mater studiorum"ë¼ë 문ì¥ì í¬í¨íê³ , ëë²ì§¸ ììê° "Dum spiro, spero"ë¼ë 문ì¥ì í¬í¨íë¤ë©´, ìµì ì½í ì¸ ê¸°ì¬ë 모ë 그리ë ìì ì¤ìì ê°ì¥ 긴 ë¨ì´ì¸ "studiorum"ì í¬ê¸°ë¡ ì§ì ë©ëë¤.
minmax(min, max)- min ì´ì max ì´íì ì¬ì´ì¦ ë²ì를 ì ìíë í¨ì í기ì
ëë¤. maxê° minë³´ë¤ ìë¤ë©´, maxë 무ìëê³ ì´ í¨ìë minì¼ë¡ ì²ë¦¬ë©ëë¤. ìµëê°ì¼ë¡ì
<flex>ê°ì í¸ëì flex ìì를 ì¤ì í©ëë¤.<flex>ê°ì ìµìê°ì¼ë¡ë ì í¨íì§ ììµëë¤.
- min ì´ì max ì´íì ì¬ì´ì¦ ë²ì를 ì ìíë í¨ì í기ì
ëë¤. maxê° minë³´ë¤ ìë¤ë©´, maxë 무ìëê³ ì´ í¨ìë minì¼ë¡ ì²ë¦¬ë©ëë¤. ìµëê°ì¼ë¡ì
-
auto-
ìµëê°ì¼ë¡ í¸ë ë´ ëª¨ë ìì´í ì¤ ê°ì¥ í°
max-content를 ëíë ëë¤.ìµìê°ì¼ë¡ í¸ë ë´ ëª¨ë ìì´í ì¤ ìµë ìµì í¬ê¸°ë¥¼ ëíë ëë¤. (ìì´í ë¤ì
min-width/min-heightë¡ ëª ìëì´ììµëë¤.) ì´ê²ì íìì ìëì§ë§ 주ë¡min-contentí¬ê¸° ê°ì ëë¤.ë§ì½
minmax()notation ì¸ë¶ìì ì¬ì©ëë¤ë©´,autoë ìì ëª ìëê²ê³¼ ê°ì´ ìµì, ìµëê° ì¬ì´ì ë²ì를 ëíë ëë¤. ì´ê²ì ëë¶ë¶minmax(min-content,max-content)ì ì ì¬íê² ëìí©ëë¤.ì°¸ê³ :
autoí¸ë í¬ê¸°ë (ê·¸ë¦¬ê³ ì¤ì§autoí¸ë í¬ê¸°ë§)align-contentê³¼justify-contentììì ìí´ íì¥ë ì ììµëë¤. ê·¸ë¬ë¯ë¡ 기본ì ì¼ë¡autoì í¬ê¸°ê° ì§ì ë í¸ëì 그리ë 컨í ì´ëì ëë¨¸ì§ ê³µê°ì ì°¨ì§í©ëë¤.
-
-
fit-content( [ <length> | <percentage> ] )max(minimum, min(limit, max-content))ê³µìì ì미í©ëë¤. minimumì´autoìµìê°(íìì ìëì§ë§ 주ë¡min-contentì ìµìê°ê³¼ ëì¼í), limitì fit-content()ì ì¸ìë¡ ì ë¬ëë í¸ë í¬ê¸°ë¥¼ ê²°ì íë í¨ìì ëë¤. ì´ ê°ì 주ë¡minmax(auto, max-content)ìminmax(auto, limit)ìì ìì ê°ì¼ë¡ ê³ì°ë©ëë¤.
repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> )- í¸ë 목ë¡ìì ë°ë³µëë ì¡°ê°ì ì미í©ëë¤. ë°ë³µ í¨í´ì ëíë´ë ë§ì ìì ì´ì ë³´ë¤ ê°ê²°í ííë¡ ìì±í ì ììµëë¤.
-
- masonry ê°ì ì´ ì¶ì´ masonry ìê³ ë¦¬ì¦ì ë°ë¼ ë°°ì¹ëì´ì¼ í¨ì ëíë ëë¤.
-
subgridê°ì 그리ëê° í´ë¹ ì¶ìì ë¶ëª¨ 그리ëì spanned ë¶ë¶ì ì±íí¨ì ëíë ëë¤. 그리ë í/ì´ì í¬ê¸°ë ëª ìì ì¼ë¡ ì§ì ëì§ ìê³ ìì 그리ëì ì ììì ê°ì ¸ìµëë¤.
ê²½ê³
masonryê°ì 그리ë ëª ì¸ìì 3 ë¨ê³ì ìì¼ë©° íì¬ íì´ì´ íì¤ì flagìë ì¤íì ì¸ ê¸°ë¥ë§ 구íëì´ ììµëë¤.
subgridê°ì 그리ë ëª ì¸ìì 2 ë¨ê³ì ìì¼ë©° íì¬ Firefox 71 ì´ìììë§ êµ¬íëì´ ììµëë¤.
íì ì ì
| ì´ê¸°ê° | none |
|---|---|
| ì ì©ëì | grid containers |
| ìì | no |
| Percentages | refer to corresponding dimension of the content area |
| ê³ì° ê° | as specified, but with relative lengths converted into absolute lengths |
| Animation type | 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 |
íì 구문
grid-template-columns =
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>? <track-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>
<integer> =
<number-token>
<fixed-breadth> =
<length-percentage [0,â]>
ìì
>그리ë ì´ í¬ê¸° ì§ì í기
HTML
<div id="grid">
<div id="areaA">A</div>
<div id="areaB">B</div>
</div>
CSS
#grid {
display: grid;
width: 100%;
grid-template-columns: 50px 1fr;
}
#areaA {
background-color: lime;
}
#areaB {
background-color: yellow;
}
ê²°ê³¼
ëª ì¸ì
| Specification |
|---|
| CSS Grid Layout Module Level 2 > # track-sizing > |
| CSS Grid Layout Module Level 2 > # subgrids > |
ë¸ë¼ì°ì í¸íì±
ê°ì´ 보기
- ì°ê´ CSS ìì±:
grid-template-rows,grid-template-areas,grid-template - 그리ë ë ì´ìì ìë´ì: Basic concepts of grid layout - Grid Tracks
- ìì ì¤ëª ì: Defining a Grid
- Subgrid