下划线字体大小混合

Underscores font-size mixin

我正在使用 underscores starter theme for wordpress。

他们有这个mixin,我不知道它想做什么。

// Rem output with px fallback
@mixin font-size($sizeValue: 1) {
    font-size: ($sizeValue * 16) * 1px;
    font-size: $sizeValue * 1rem;
}

有人可以解释这背后的数学原理吗?
如果字体大小以 px 为单位,我该如何使用它?

它只是以 rem 输出您的字体大小,并带有像素回退(“16”是此处的基本字体大小)。 如果你使用@include font-size(1.2),它会输出:

font-size: 19.2px; // fallback for those with no rem support
font-size: 1.2rem;

此 mixin 不适合将以像素为单位的字体大小转换为 rem。
如果你想以像素为单位编写代码并将它们转换为 rem,mixin 应该看起来像这样:

@mixin font-size-px-to-rem($value: 12) {
  font-size: $value * 1px;
  font-size: $value / 16 * 1rem;
}

然后使用它:

.test {
  @include font-size-px-to-rem(14);
}

输出到:

.test {
  font-size: 14px;
  font-size: 0.875rem;
}

Blimey,这比需要的抽象了一点。换出有点工作,但这是我使用的mixin:

$base-font-size: 16;

@mixin font-size-rems($target-px-size) {
    $rem-size: $target-px-size / $base-font-size;
    font-size: $target-px-size * 1px;
    font-size: $rem-size * 1rem;
}

然后我这样使用它:

.example {
    @include font-size-rems(24);
}

输出:

.example {
   font-size: 24px;
   font-size: 1.5rem;
}