试一试
grid-template-columns: minmax(20px, auto) 1fr 1fr;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
grid-template-columns: minmax(2ch, 10ch) 1fr 1fr;
<section class="default-example" id="default-example">
  <div class="example-container">
    <div class="transition-all" id="example-element">
      <div>One. This column has more text in it.</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-gap: 10px;
  width: 250px;
}
#example-element > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  text-align: left;
}
语法
css
/* <inflexible-breadth>, <track-breadth> values */
minmax(200px, 1fr)
minmax(400px, 50%)
minmax(30%, 300px)
minmax(100px, max-content)
minmax(min-content, 400px)
minmax(max-content, auto)
minmax(auto, 300px)
minmax(min-content, auto)
/* <fixed-breadth>, <track-breadth> values */
minmax(200px, 1fr)
minmax(30%, 300px)
minmax(400px, 50%)
minmax(50%, min-content)
minmax(300px, max-content)
minmax(200px, auto)
/* <inflexible-breadth>, <fixed-breadth> values */
minmax(400px, 50%)
minmax(30%, 300px)
minmax(min-content, 200px)
minmax(max-content, 200px)
minmax(auto, 300px)
一个接受两个参数 min 和 max 的函数。
每个参数都可以是 <length>、<percentage>、<flex> 值,或者是关键字值 max-content、min-content 或 auto 之一。
如果 max < min,则 max 被忽略,minmax(min,max) 被视为 min。作为最大值,<flex> 值设置网格轨道(grid track)的弹性因子;它不能作为最小值。
值
- <length>
- 
一个非负的长度。 
- <percentage>
- 
一个非负的百分比,在列网格轨道中相对于网格容器的行内尺寸,在行网格轨道中相对于网格容器的块尺寸。如果网格容器的尺寸取决于其轨道的尺寸,则 <percentage>必须被视为auto。用户代理可以调整轨道对网格容器尺寸的固有尺寸贡献,并通过最小量增加轨道的最终尺寸,以实现百分比。
- <flex>
- 
一个带有 fr单位的非负尺寸,指定轨道的弹性因子。每个<flex>尺寸的轨道根据其弹性因子按比例分配剩余空间。
- max-content
- 
表示占据网格项的网格项的最大内容贡献。 
- min-content
- 
表示占据网格项的网格项的最小内容贡献。 
- auto
- 
作为 min,它表示占据网格轨道的网格项的最大最小尺寸(由min-width/min-height指定)。作为max,它与max-content相同。然而,与max-content不同,它允许通过align-content和justify-content属性值(如normal和stretch)来扩展轨道。
正式语法
<minmax()> =
minmax( min , max )
CSS 属性
minmax() 函数可用于
示例
CSS
css
#container {
  display: grid;
  grid-template-columns: minmax(min-content, 300px) minmax(200px, 1fr) 150px;
  grid-gap: 5px;
  box-sizing: border-box;
  height: 200px;
  width: 100%;
  background-color: #8cffa0;
  padding: 10px;
}
#container > div {
  background-color: #8ca0ff;
  padding: 5px;
}
HTML
html
<div id="container">
  <div>Item as wide as the content, but at most 300 pixels.</div>
  <div>Item with flexible width but a minimum of 200 pixels.</div>
  <div>Inflexible item of 150 pixels width.</div>
</div>
结果
规范
| 规范 | 
|---|
| CSS 网格布局模块 Level 2 # funcdef-grid-template-columns-minmax | 
浏览器兼容性
加载中…