跳至主要内容 跳至文档导航

Bootstrap 的调整大小引擎响应式地缩放常见的 CSS 属性,以更好地利用视口和设备上的可用空间。

什么是 RFS?

Bootstrap 的附属项目 RFS 是一个单位调整大小引擎,最初开发用于调整字体大小(因此其缩写为响应式字体大小)。如今,RFS 能够重新调整大多数 CSS 属性,其单位值如 marginpaddingborder-radius 甚至 box-shadow

该机制根据浏览器视口的尺寸自动计算适当的值。它将被编译成 calc() 函数,其中包含 rem 和视口单位的混合,以启用响应式缩放行为。

使用 RFS

混合包含在 Bootstrap 中,在你包含 Bootstrap 的 scss 后即可使用。如果需要,RFS 也可以 独立安装

使用混合

rfs() 混合具有 font-sizemarginmargin-topmargin-rightmargin-bottommargin-leftpaddingpadding-toppadding-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() 混合

.selector {
  @include rfs(4rem, border-radius);
}

!important 也可以添加到你想要的任何值

.selector {
  @include padding(2.5rem !important);
}

使用函数

当你不想使用包含时,还有两个函数

  • rfs-value() 将值转换为 rem 值(如果传递 px 值),在其他情况下,它返回相同的结果。
  • 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 是 Bootstrap 组织下的一个独立项目。有关 RFS 及其配置的更多信息,请访问其 GitHub 仓库