You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用HTML和CSS的Grid(fr)实现网格等份划分

CSS Grid fr单位疑问解答

核心认知澄清

你之前了解到的「CSS Grid体系默认共有12fr单位」是误解,12列栅格是Bootstrap等前端UI框架的通用设计规则,并非CSS Grid原生规范的限制。
fr是自由空间占比单位,总分配份数由你在grid-template-columns/grid-template-rows属性中定义的所有fr值相加的总和决定,没有固定的预设总份数。

关于“剩余2fr”的处理

你当前代码中grid-template-columns: repeat(5, 2fr)的总fr份数为5*2=10,Grid布局计算时,会先扣除Grid容器的固定宽度、列间隙等占用的空间,将剩下的可用自由空间平均分为10份,每列占2份,刚好占满所有可用空间,不存在所谓的“剩余2fr”,这也是你当前实现效果符合预期的原因。

总fr数凑满12的实现方式

如果需要让总占比份数刚好为12,可调整每列的fr值为12/5=2.4fr,修改后的样式如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Document</title>
  <style>
    .grid {
      display: grid;
      grid-template-columns: repeat(5, 2.4fr);
    }
  </style>
</head>
<body>
  <footer class="grid">
    <div>A</div>
    <div>B</div>
    <div>C</div>
    <div>D</div>
    <div>E</div>
  </footer>
</body>
</html>

该写法和你当前代码的视觉效果完全一致,仅调整了总占比份数为12,没有本质差异。
如果仅需要实现5个等宽列,更简洁的写法是grid-template-columns: repeat(5, 1fr),总份数为5,每列占1/5可用空间,效果和上述两种写法完全相同。

内容的提问来源于stack exchange,提问作者Sunil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:54:04