Skip to main content Skip to docs navigation

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

什么是 RFS?

Bootstrap 的副项目 [RFS](https://github.com/twbs/rfs/tree/v10.0.0)是一个单位大小调整引擎,最初是为了调整字体大小而开发的(因此缩写为 “响应式字体大小”)。如今,RFS 能够调整大多数具有单位值的 CSS 属性,如 “margin”、“padding”、“border-radius ”甚至 “box-shadow”。

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

使用 RFS

Bootstrap 中包含了这些 mixins,一旦包含了 Bootstrap 的 scss,就可以使用这些 mixins。如果需要,也可以 独立安装 RFS。

使用 mixins

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);
}

使用函数

当您不想使用 “包括 ”时,还有两种功能:

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

在本例中,我们使用 Bootstrap 内置的 responsive breakpoint mixins 之一,仅在 lg breakpoint 下方应用样式。

.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 已经够小了,所以 RFS 不会调整其大小 */
  }
}

扩展文件

RFS 是 Bootstrap 组织下的一个独立项目。有关 RFS 及其配置的更多信息,请参阅其 GitHub repository