css - 为什么 minmax(0, 1fr) 对长元素有效而 1fr 却不行?

标签 css css-grid

所以我有这个网格:

+---------+------------------------------+---------+    
|  <div>  |  <p> - 1000 characters long  |  <div>  |
+---------+------------------------------+---------+

p 里面有一个没有空格的超长字符串。 div 是具有固定尺寸的占位符。 这会产生以上内容:

  display: grid;
  grid-auto-flow: column;
  grid-template-columns: auto minmax(0, 1fr) auto;

但是将 minmax(0, 1fr) 更改为 1fr 会得到:

+---------+----------------------------------------+    
|  <div>  |               <p> - 1000 characters long  |  <div>  |
+---------+----------------------------------------+

它溢出了它的父级并且超出了屏幕尺寸。为什么它的行为不像 minmax?

Codepen

最佳答案

因为1fr默认等同于minmax(auto, 1fr)

当您使用 minmax(0, 1fr) 时,这与独立的 1fr 有所不同。

在第一种情况下,轨道不能小于网格项的大小(最小大小为auto)。

在第二种情况下,轨道可以自由调整为 0 宽度/高度。

更多详情:

关于css - 为什么 minmax(0, 1fr) 对长元素有效而 1fr 却不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55473198/

相关文章:

html - 没有嵌套的多行 CSS 网格

html - 这种布局甚至可以用于任何类型的 CSS 网格吗? (柔性、网格、盒模型等)

html - 将 div 框与 CSS 网格对齐时出现问题

javascript - 动态表创建者或 <td> <tr> 创建者

html - 容器内的 CSS 多个 div 使页面超出高度 100%

javascript - 使用网格布局水平均匀定位框 - HTML

html - 仅CSS的砌体布局

css - 如何让容器扩展以包含 float

3 列布局的 css 对齐问题

html - 为什么 css grid-template-areas 不遵守我的媒体查询?