fr css,CSS网格布局中百分比和fr单位之间的差异

fr

该fr装置仅适用于容器中的自由空间。

所以在你的代码中:grid-template-columns: repeat(12, 1fr);

...容器中的自由空间在12列中平均分配。

由于列只处理自由空间,grid-column-gap因此不是一个因素。fr在确定长度之前从容器宽度中减去它(规格参考)。

以下是浏览器的计算方法:(free space - gutters) / 12  = 1fr

%

当你使用百分比时......grid-template-columns: repeat(12, calc(100% / 12));

...容器分为12列,每列宽8.33333%。这是一个实际长度,不像fr单位,只涉及自由空间。

柱长和网格间隙都考虑在宽度中。

以下是浏览器的计算方法:8.33333% * 12 = 100%

+11 * 10px     = 110px

有明显的溢出。

(注意:grid-*-gap属性仅适用于网格项之间 - 从不在项目和容器之间。这就是为什么网格间隙的数量是11,而不是13。)

这有效:grid-template-columns: repeat(12, calc(8.3333% - 9.1667px));

其中包括:12列

每列的宽度取决于容器的整个宽度(100%)并除以12100% / 12 = 8.3333% (individual column width)

然后减去列间隙(有11个)10px * 11 = 110px (total width of column gaps)110px / 12 = 9.1667px (amount to be deducted from each column).grid {

display: grid;

grid-template-columns: repeat(12, calc(8.3333% - 9.1667px));

grid-column-gap: 10px;

grid-row-gap: 10px;

justify-content: center;}.l-1 { grid-column-start: span 1; }.l-2 { grid-column-start: span 2; }.l-3 { grid-column-start: span 3; }.l-4 { grid-column-start: span 4; }.l-5 { grid-column-start: span 5; }.l-6 { grid-column-start: span 6; }.l-7 { grid-column-start: span 7; }.l-8 { grid-column-start: span 8; }.l-9 { grid-column-start: span 9; }.l-10 { grid-column-start: span 10; }.l-11 { grid-column-start: span 11; }.l-12 { grid-column-start: span 12; }[class*=l-] { border: 1px solid red; }

Column 1
Column 2
Column 3
Column 4
Column 5
Column 6
Column 7
Column 8
Column 9
Column 10
Column 11
Column 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值