fr单位与百分比混合使用时,百分比先按容器尺寸占位,fr再分配剩余空间。例如600px容器中设40%和1fr,则第一列240px,第二列360px;若设30%、2fr、1fr,则第一列180px,剩余420px按2:1分,得280px和140px。注意避免100%与fr共存,以防fr失效,推荐主内容用fr、侧边栏用固定或百分比宽度,确保响应式兼容。
在 CSS Grid 布局中,fr 单位和百分比(%)可以混合使用来定义行或列的尺寸,但它们的计算方式不同,理解其行为对布局控制至关重要。
fr(fraction)表示可用空间的一部分,而百分比是相对于容器总尺寸的比例。当两者混合时,Grid 容器会先分配固定值(如百分比、px 等),再将剩余空间按 fr 分配。
假设容器宽 600px,定义如下:
.grid-container {
display: grid;
grid-template-columns: 40% 1fr;
}
结果分析:
此时第二列比第一列宽,尽管它只有 1fr,因为 fr 是“剩余空间”的份额。
更复杂的例子:
grid-template-columns: 30% 2fr 1fr;
仍以 600px 容器为例:
可见 fr 的比例是在减去非弹性部分后才生效。
混合使用时需注意以下几点:
基本上就这些。只要记住:百分比是“按比例占满容器”,fr 是“分剩余空间”,就能正确预判混合布局的行为。