Wie entfernt man die Maßeinheiten von ein Sass mixin-Gleichung?
Ich geschrieben habe, ein sehr einfaches Sass-mixin für die Konvertierung von pixel-Werte in den rem-Werte (siehe Jonathan Snook ist Artikel über die Vorteile der Verwendung der rems). Hier ist der code:
// Mixin Code
$base_font_size: 10; // 10px
@mixin rem($key,$px) {
#{$key}: #{$px}px;
#{$key}: #{$px/$base_font_size}rem;
}
// Include syntax
p {
@include rem(font-size,14);
}
// Rendered CSS
p {
font-size: 14px;
font-size: 1.4rem;
}
Dieser mixin funktioniert ganz gut, aber ich bin ein wenig unzufrieden mit der include-syntax für Sie. Sehen Sie, ich würde viel eher an ein pixel-Wert in der include-Anweisung anstelle einer einfachen Zahl. Dies ist ein kleines detail, aber es würde hinzufügen semantische Bedeutung zu den include-Anweisung, die derzeit nicht vorhanden ist. Hier ist, was ich bekomme, wenn ich versuchen, geben Sie einen Pixelwert in das include-Anweisung:
// Include syntax
p {
@include rem(font-size,14px);
}
// Rendered CSS
p {
font-size: 14pxpx;
font-size: 1.4pxrem;
}
Einmal Sass sieht einen pixel-Wert, der übergeben wird in eine Gleichung, gibt es die 'px'. Ich entfernen will, die Mengeneinheit aus, als wenn ich mit parseFloat oder parseInt in JavaScript. Wie macht man so innerhalb von ein Sass mixin?
- Zumindest Sass lassen Sie rem als Einheit. Weniger nicht erkennt und fügt Sie ein Leerzeichen zwischen meiner Größe und der Einheit.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen von Einheiten aus einer Reihe erfolgt durch Teilung, wie in der Algebra.
Einheiten in Sass behandelt werden können als in der realen Mathematik, also px/px/rem geht nur rem. Genießen Sie es!
Hier ist eine Funktion, die Sie nutzen könnten. Auf der Basis von Stiftung Globale Hilfsfunktionen.
Beispiel verwenden:
$num * 0
ist immer0
Recht?$num: 1rem
dann$num * 0
ist0rem
und nicht nur0
, also immer mit einer Einheit