RFS
Bootstrap的大小调整引擎响应缩放常见的CSS属性,以更好地利用视图和设备的可用空间。
什么是 RFS?
Bootstrap的side project RFS
是一个单元调整引擎,最初开发它是为了调整字体大小(因此它是响应式字体大小的缩写)。现在RFS能够用单位值重新调整大多数CSS属性,比如margin
, padding
,
border-radius
, 甚至 box-shadow
。
该机制会根据浏览器视窗的尺寸自动计算适当的值。它将被编译为混合了 rem
和viewport单元的 calc()
函数,以支持响应式伸缩行为。
使用 RFS
需要将mixins包含在Bootstrap中,一旦包含了Bootstrap的scss,就可以使用它了。如果需要,还可以独立 安装RFS。
使用 mixins
rfs()
mixin对字体大小 font-size
, margin
, margin-top
,
margin-right
, margin-bottom
, margin-left
, padding
,
padding-top
, padding-right
, padding-bottom
,和 padding-left
都有缩写。参考下面的示例获取源代码Sass和编译的CSS。
.title {
@include font-size(4rem);
}
.title {
font-size: calc(1.525rem + 3.3vw);
}
@media (min-width: 1200px) {
.title {
font-size: 4rem;
}
}
任何其他属性都可以像这样传递给 rfs()
mixin:
.selector {
@include rfs(4rem, border-radius);
}
!important
也可以添加到任何你想要的值:
.selector {
@include padding(2.5rem !important);
}
使用函数(functions)
当你不想使用include时,还有两个函数:
- 如果传递了
px
值,rfs-value()
将值转换为rem
值,在其他情况下返回相同的结果。 - 如果属性需要重新排序,
rfs-fluid-value()
返回值的流体版本。
在本例中,我们使用Bootstrap的一个内置 响应式断点 混合,只在 lg
断点以下应用样式。
.selector {
@include media-breakpoint-down(lg) {
padding: rfs-fluid-value(2rem);
font-size: rfs-fluid-value(1.125rem);
}
}
@media (max-width: 991.98px) {
.selector {
padding: calc(1.325rem + 0.9vw);
font-size: 1.125rem; /* 1.125rem is small enough, so RFS won't rescale this */
}
}
扩展文档
RFS是引导组织下的一个独立项目。关于RFS及其配置的更多信息可以在其GitHub存储库中找到。