为什么这样:
div {
width: 200px;
display: grid;
grid: "first second" / 1fr 1fr;
background-color: #ccc;
padding: 8px;
}
#first {
grid-area: first;
}
#second {
grid-area: second;
}Run Code Online (Sandbox Code Playgroud)
<div>
<input id="first" />
<input id="second" />
</div>Run Code Online (Sandbox Code Playgroud)
与此不同的是:
div {
width: 200px;
display: grid;
grid: "first first second second" / 1fr 1fr 1fr 1fr;
background-color: #ccc;
padding: 8px;
}
#first {
grid-area: first;
}
#second {
grid-area: second;
}Run Code Online (Sandbox Code Playgroud)
<div>
<input id="first" />
<input id="second" />
</div>Run Code Online (Sandbox Code Playgroud)
请注意,我唯一改变的是列数和每个输入占用的区域.
这是规范以及如何1fr解释的问题。
“问题”是
1fr解析为minmax(auto, 1fr),这意味着我们需要在解析 1fr 轨道的大小之前知道(父轨道)的大小(因为最小轨道大小调整函数是内容大小的,它是自动的)。作者 POV 有一个快速解决此问题的方法,只需将 1fr 替换为 minmax(0px, 1fr) 即可。
..或者在这种情况下只需设置min-width:0子元素。