【发布时间】:2019-06-05 08:09:30
【问题描述】:
所以我在 CSS Grid 中定义了一个布局,它需要这个特定的行具有相同大小的输入。我可以做数学计算,只指定百分比,它工作正常(见注释掉的行)但是当我通过小数单位(fr)指定它时,跨栏比非跨栏“挤压”更多。
.A {
grid-area: a;
}
.B {
grid-area: b;
}
.C {
grid-area: c;
}
.Exchange_Row {
display: grid;
grid-template-columns: 1fr 9fr 10fr 10fr 1fr;
/*
grid-template-columns: 3% 27% 30% 30% 3%;
*/
grid-template-areas: "a a b c ."
}
input[type=text] {
border: solid;
}
<div style="width: 90%; border: solid; border-radius: 5px; padding: 5px;">
<div id="currencyRow" class="Exchange_Row">
<input type="text" class="A" value="A" />
<input type="text" class="B" value="B" />
<input type="text" class="C" value="C" />
</div>
</div>
当我将其调整为窄视图(小于 598)时,A 继续变小(降至 127 像素),但 B 和 C 保持不变,为 169 像素。
如果我使用 fr 单位注释掉 grid-template-columns 行,而是使用下面的百分比,那么它可以正常工作。
以下屏幕截图显示了使用 fr 单位定义列时的不同大小(如上面的代码中所示):
谁能帮我理解为什么会这样?我预计 A 会停在 169 像素,否则 B 和 C 会继续缩小到 127 像素,因为它们的定义几乎相同。
【问题讨论】:
-
正如@TemaniAfif 所说,
input上的min-width: 0;或width: 100%解决了这个问题。