介绍 CSS 中的长度单位 fr

简介

在 CSS Grid 网格布局中,引入了一种新的长度单位 fr(fraction)。它表示 Grid 布局中中剩余空间(leftover space)的一部分(fraction)。
一般来说 1fr 的意思是“100%的剩余空间”, .25fr 意味着“25%的剩余空间”。当时当 fr 大于 1 的时候,则会重新计算比例来分配。我们可以看下面的详细例子。

用法

1. 均分剩余空间

首先我们先建立如下的网格布局

<div class="grid-container">
  <div class="A">A</div>
  <div class="B">B</div>
  <div class="C">C</div>
  <div class="D">D</div>
</div>

然后将 ABCD 四块进行均分,我们可以用 grid-template-columns: repeat(4, 1fr) 这里的和 grid-template-columns: repeat(4, .25fr) 效果是一样的。.25 来自于 100%/4=25%

一般都建议使用 fr>=1 的情况, 比如说 1fr 2fr 就比 .33fr .67fr 可读性更强。

实现效果如下:

.grid-container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 10px;
}
css-fr.png

2. 和其他单位混合使用

在 grid 布局中,有时候我们需要固定某些列的长度,可以用以下方法,这里 AD 都是固定的 50pxC 是占总宽度的 20%,剩余空间就可以分配给 B
这种情况,在设计响应式布局的时候非常有用。

.grid-container {
  grid-template-columns: 50px 1fr 20% 50px;
  column-gap: 10px;
}
css-fr-mix.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS Grid Layout是CSS为布局新增的一个网格布局的模块,网格布局主要针对Web应用程序开发。 Fle...
    JunChow520阅读 300评论 0 1
  • 何为布局 此处说的布局是对HTML界面元素的布局,也就是对网页中的元素进行位置上的安排。那么我们为什么需要布局和如...
    张中华阅读 463评论 0 5
  • 在这篇文章中,我将教你如何使用 CSS Grid 来创建一个超酷的图像网格图,它将根据屏幕的宽度来改变列的数量。最...
    头不秃的程序员阅读 560评论 0 1
  • https://juejin.im/post/5d2d7a67f265da1bb5652b91 从常见的浮动到表格...
    逆风飘游的鱼阅读 311评论 0 0
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,588评论 28 53