Bootstrap 的调整大小引擎会响应式地缩放常见的 CSS 属性,以更好地利用不同视口和设备上的可用空间。
什么是RFS?
Bootstrap 的副项目 RFS 是一个单位调整引擎,最初开发用于调整字体大小(因此其缩写代表响应式字体大小)。如今,RFS 能够重缩放带有单位值的多数 CSS 属性,例如 margin、padding、border-radius,甚至 box-shadow。
该机制会根据浏览器视口的尺寸自动计算适当的值。它将被编译为calc()个函数,混合使用rem和视口单位,以实现响应式缩放行为。
使用 RFS
这些 mixin 已包含在 Bootstrap 中,一旦你引入 Bootstrap 的 scss 就可以使用。如果需要,RFS 也可以单独安装。
使用mixin
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);
}
使用函数
当你不想使用 includes 时,还有两个函数:
rfs-value()将一个值转换为rem值,如果传入的是px值,在其他情况下返回相同的结果。rfs-fluid-value()如果属性需要重新缩放,则返回值的流体版本。
在此示例中,我们使用 Bootstrap 内置的一个 响应式断点 mixin,仅在 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 是 Bootstrap 组织下的一个独立项目。关于 RFS 及其配置的更多信息可以在其 GitHub 仓库 中找到。