grid-template-columns
grid-template-columns 该属性是基于网格列的维度,去定义网格线的名称和网格轨道的尺寸大小。
示例
/* 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);
/* <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: unset;
浏览器支持
|
|
|
|
|
IE不支持
grid-template-columns
,其余浏览器都支持
grid-template-columns
|
||||
语法
grid-template-columns : none | <track-list> | <auto-track-list> | subgrid <line-name-list>
取值
-
none
:这个关键字表示不明确的网格。所有的列和其大小都将由
grid-auto-columns属性隐式的指定。 - <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>,但最小值则不行。
- auto :如果该网格轨道为最大时,该属性等同于<max-content>,为最小时,则等同于<min-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 {
display: grid;
width: 100%;
grid-template-columns: 50px 1fr;
}
#areaA {
background-color: lime;
}
#areaB {
background-color: yellow;
}
<div id="grid">
<div id="areaA">A</div>
<div id="areaB">B</div>
</div>