私はSassを始めたばかりなので、我慢してください。
px
私はこのミックスインを使用して、 (古いIEの場合)フォントサイズの宣言と最新のブラウザーの両方でフォントサイズの宣言を処理しrem
ます。これも優れたline-height
計算を行います。
@mixin font-size($font-size, $line-height-val: "", $sledge-hammer: "" /* $sledge-hammer is for an optional `!important` keyword */) {
font-size: ($font-size)+px#{$sledge-hammer};
font-size: ($font-size / $base-font-size)+rem#{$sledge-hammer};
@if $line-height-val == "" {
line-height: ceil($font-size / $base-line-height) * ($base-line-height / $font-size);
} @else {
line-height: #{$line-height-val};
}
}
$line-height-val
それは機能しますが、オプションの引数(および$sledge-hammer
)はそれを行うための最適な方法ではないように感じます。一部のヘルパークラスでキーワードを宣言する必要があるため$line-height-val
、を手動で宣言する必要がある場合があるためline-height
、が必要です。$sledge-hammer
!important
90%の時間、私は次のようにミックスインを使用しています。
@include font-size(24);
どちらもコンパイルします:
font-size: 24px;
font-size: 1.5rem;
line-height: 1.1;
オーバーライドする必要がある場合は、次のline-height
ようにします。
@include font-size(24, 1.6);
どちらもコンパイルします:
font-size: 24px;
font-size: 1.5rem;
line-height: 1.6;
!important
しかし、キーワードを宣言する必要がある場合は、次のようにする必要があります。
@include font-size($font-size-sml, "", !important);
どちらもコンパイルします:
font-size: 15px!important;
font-size: 0.9375rem!important;
line-height: 1.6;
""
しかし、私は2番目の引数に空を使用する必要があり、3番目の引数の値は常にミックスインに含まれるようになるので、おかしいと感じ!important
ますか?
このミックスインを書くもっときれいな方法があるのだろうか?