Chrome提供invalid property value
并且不尊重CSS:
grid-template-columns: repeat(auto-fill, minmax(auto, 1fr));
Run Code Online (Sandbox Code Playgroud)
auto
用min-content
and 替换时也会失败max-content
.
当auto
被固定值替换时,它按预期工作,例如
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
Run Code Online (Sandbox Code Playgroud)
这是令人惊讶的,因为这两个repeat
和minmax
支持的关键字.
HTML很简单
<div class='wrapper>
<div>...</div>
<div>...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和css
.wrapper {
display: grid
grid-template-columns: repeat(auto-fill, minmax(auto, 1fr));
}
Run Code Online (Sandbox Code Playgroud)
使用auto-fill
或时auto-fit
,必须有一个明确的最小尺寸或最大尺寸.
通过"明确",规范意味着:
可以在不测量内容的情况下确定的大小.
将两个minmax
参数都设置为基于内容的大小时,如下所示:
grid-template-columns: repeat(auto-fill, minmax(auto, 1fr));
Run Code Online (Sandbox Code Playgroud)
......这违反了规范,因为没有明确的规模.
使用min-content
并max-content
会导致出于同样的原因同样的错误.
只要一个值是明确的,并且第一个值不是fr
(见下文),该规则就是有效的.
7.2.2.2.重复填充:
auto-fill
和auto-fit
重复当
auto-fill
给出重复数时,如果网格容器在相关轴上具有确定的大小或最大大小,则重复次数是最大可能的正整数,其不会导致网格溢出其网格容器(处理每个轨道)作为其最大轨道尺寸调整功能,如果确定或作为其最小轨道尺寸调整功能,否则,并考虑grid-gap
到).如果任何重复次数会溢出,则重复1次.
否则,如果网格容器在相关轴中具有确定的最小尺寸,则重复次数是满足该最小要求的最小可能正整数.
否则,指定的曲目列表仅重复一次.
原始答案 - 在问题被修改之前
问题是1fr
无法设置为最小值minmax()
.
从规格:
定义大于或等于
min
或小于等于的大小范围max
.如果
max
<min
,则max
忽略并minmax(min,max)
视为min
.作为最大值,
<flex>
值设置轨道的flex因子; 它至少是无效的.注意:此规范的未来级别可能允许
<flex>
最小值,并将更新轨道大小调整算法以正确解释此问题一个灵活的长度或是单位
<flex>
的尺寸fr
,它代表网格容器中自由空间的一小部分.