在CSS网格中传递`1fr`时,`maxmax`如何创建多个列?

马特·迪卡利翁

假设我有以下代码。根据我的理解,此网格内的列永远不会小于150像素宽……也不会超过容器宽度的“ 1分数”。

然后,网格如何决定创建更多列?按照这种逻辑,您是否不总是会得到一个包含一列的网格,该列占据了容器宽度的100%?

main {
    display: grid;
    grid-gap: 20px;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}

.item {
    background: #07c;
    height: 150px;
}
<main>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</main>

时钟

按照这种逻辑,您是否不总是会得到一个包含一列的网格,该列占据了容器宽度的100%?

不可以,因为当最大约束用表示时,网格将特别不尝试这样做fr取而代之的是,网格将尝试创建满足网格容器宽度允许的最少150个像素限制的尽可能多的列。例如-暂时保留指定的装订线宽度-如果网格容器的宽度为300像素,则将创建两个150像素的列。如果宽度达到450像素,则将添加第三列。

所述1FR意味着任何剩余空间(当电网容器是宽之间的任何位置300点450的像素非包含)的列中平均分配,各列已敷设。

这是在所有规定的规范的部分7.2.2.2文本相当冗长,但是它描述的示例在功能上与您拥有的示例相同:

例如,以下代码将创建适合窗口宽度的多达25个字符的列。如果有剩余空间,它将分配给25个字符的列。

body {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(25ch, 1fr));
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用证明内容:在CSS网格中与1fr一起结束?

将元素设置为2fr而不是1fr CSS网格列

如何使用1fr网格元素上隐藏的溢出

使宽度为1fr + 1fr = 2fr(有网格间隙)

CSS网格的“自动”行数可变,但一行应为“ 1fr”

为什么justify-items取消网格中的1fr?

高度为1fr的单行网格未在Chrome中填充高度

1fr网格单元扩展超过100%

是否可以在CSS的grid元素中添加1fr填充?

minmax(0,1fr)如何处理长元素,而1fr不起作用?

CSS网格:使网格单元仅与最大内容一样宽,但不得超过1fr。还是显示:flex能够解决这个问题?

在CSS Grid中,为什么小屏幕尺寸的1FR + 9FR与10FR的不一样?

如何使用CSS网格布局在CSS中创建固定列?

如何解释“ grid-template-rows:auto auto 1fr auto”?

tailwind `grid-cols-[1fr,700px,2fr]` 中的参数有什么作用?

当我需要不同的宽度时,如何处理CSS网格中的动态列数?

minmax(0,1fr)对长元素起作用而1fr不起作用吗?

如何使用HTML和CSS创建3列图像网格?

无法在CSS网格中创建一列

如何创建这样的 css 网格?

如何使用AG网格中列的值创建数组?

将 GRID 中最后一行的剩余项目居中 (1fr 1fr)

如何在继续上一页内容的页面中创建多个列。-HTML,CSS

如何定位 CSS 网格中的最后一列?

如何证明CSS网格布局中的三列?

如何定位CSS网格布局中的特定列或行?

如何使用CSS网格对齐嵌套HTML中的列

如何在CSS网格中删除未使用的列/行

如何在嵌套的 CSS 网格列中均匀间隔项目?