RFS

所有通用表单控件,设计为一致性

什么是RFS?

BBootstrap的附带项目RFS是一个单元的缩放调整引擎,最初是为了调整字体大小而开发的(因此缩写为Responsive Font Sizes)。如今RFS能够使用单位数值来缩放大多数的CSS属性,诸如marginpaddingborder-radius、甚至box-shadow等。

该机制会根据浏览器视窗的尺寸自动计算适当的值。它将使用rem和视窗单位组合编译为calc()的函数,启用响应式的缩放行为。

使用RFS

mixin被包含在Bootstrap中,且只要包含Bootstrap的scss就可以使用这些mixin。如果有需要也可以独立安装 RFS。

使用mixins

rfs() mixin具有font-sizemarginmargin-topmargin-rightmargin-bottommargin-leftpaddingpadding-top padding-rightpadding-bottompadding-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);
}

使用函数

当你不想使用include时,这里还有二个函数:

  • rfs-value()会将数值转换为rem值,如果传递进函式的数值为px的话。在其他情况下,它将返回相同的结果。
  • rfs-fluid-value()会返回fluid版本的数值,如果属性需要重新缩放的话。

在此示例中,我们使用Bootstrap内置的响应式断点mixins之一来应用在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是Boostrap组织下的一个单独项目,更多有关于RFS的相关配置与信息,请参见其GitHub repository