Siirry pääsisältöön Siirry dokumenttien navigointiin
Check

Bootstrapin koonmuutosmoottori skaalaa herkästi yleisiä CSS-ominaisuuksia hyödyntääkseen paremmin käytettävissä olevaa tilaa näkymäporttien ja laitteiden välillä.

Mikä on RFS?

Bootstrapin sivuprojekti RFS on yksikön koonmuutosmoottori, joka kehitettiin alun perin muuttamaan kirjasinkokoja (tästä syystä sen lyhenne sanoista Responsive Font Sizes). Nykyään RFS pystyy skaalaamaan useimmat CSS-ominaisuudet uudelleen yksikköarvoilla, kuten margin, padding, border-radiustai jopa box-shadow.

Mekanismi laskee automaattisesti sopivat arvot selaimen näkymän mittojen perusteella. Se käännetään calc()funktioiksi, joissa on yhdistelmä- remja viewport-yksiköitä, jotta reagoiva skaalaus toimii.

RFS:n käyttö

Mixinit sisältyvät Bootstrapiin ja ovat saatavilla, kun sisällytät Bootstrapin scss. RFS voidaan tarvittaessa asentaa myös itsenäisesti .

Seosten käyttö

The rfs() mixin has shorthands for font-size, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, and padding-left. See the example below for source Sass and compiled CSS.

.title {
  @include font-size(4rem);
}
.title {
  font-size: calc(1.525rem + 3.3vw);
}

@media (min-width: 1200px) {
  .title {
    font-size: 4rem;
  }
}

Any other property can be passed to the rfs() mixin like this:

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

!important can also just be added to whatever value you want:

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

Using the functions

When you don’t want to use the includes, there are also two functions:

  • rfs-value() converts a value into a rem value if a px value is passed, in other cases it returns the same result.
  • rfs-fluid-value() returns the fluid version of a value if the property needs rescaling.

In this example, we use one of Bootstrap’s built-in responsive breakpoint mixins to only apply styling below the 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 is small enough, so RFS won't rescale this */
  }
}

Extended documentation

RFS is a separate project under the Bootstrap organization. More about RFS and its configuration can be found on its GitHub repository.