Scss如何将字符串转换为数值
Scss how convert string to numeric value
我想通过以下函数使用字体大小信息执行数学运算。我使用 sass 内置字符串函数删除了 $font-size
的 rem
单元信息,但是由于值类型是字符串,我无法执行数学运算。
在sass中有没有办法将字符串值类型转换为数值类型?
@use "../abstracts/variables" as *;
@use "sass:math";
@function em($value, $font-size) {
$length: str-length(#{$font-size}); //sample-think about it font-size 1.125rem
$trim: ($length - 3);
$data: str-slice(#{$font-size}, 1, $trim);
$result: math.div($value, $data);
@return $result + "em";
}
最好使用辅助函数来删除 $font-size
的单位,例如 this one。
@function stripUnit($number) {
@if meta.type-of($number) == "number" and not math.is-unitless($number) {
@return math.div($number, $number * 0 + 1);
}
@return $number;
}
@function em($value, $font-size) {
$data: strip-unit($font-size);
$result: math.div($value, $data);
@return $result + "em";
}
我想通过以下函数使用字体大小信息执行数学运算。我使用 sass 内置字符串函数删除了 $font-size
的 rem
单元信息,但是由于值类型是字符串,我无法执行数学运算。
在sass中有没有办法将字符串值类型转换为数值类型?
@use "../abstracts/variables" as *;
@use "sass:math";
@function em($value, $font-size) {
$length: str-length(#{$font-size}); //sample-think about it font-size 1.125rem
$trim: ($length - 3);
$data: str-slice(#{$font-size}, 1, $trim);
$result: math.div($value, $data);
@return $result + "em";
}
最好使用辅助函数来删除 $font-size
的单位,例如 this one。
@function stripUnit($number) {
@if meta.type-of($number) == "number" and not math.is-unitless($number) {
@return math.div($number, $number * 0 + 1);
}
@return $number;
}
@function em($value, $font-size) {
$data: strip-unit($font-size);
$result: math.div($value, $data);
@return $result + "em";
}