Sass SCSS:使用函数中的单位值进行计算
我通过地图为主题定义值,如下所示:Sass SCSS:使用函数中的单位值进行计算,sass,Sass,我通过地图为主题定义值,如下所示: $sizes: ( small: 768, medium: 1024, large: 1200, xlarge: 1600, gutter: 48 ); 然后给他们一个具有以下功能的装置: @function sz($size) { @return map-get($sizes, $size) + px; } 如何通过使用函数中的一个值进行计算来定义变量,例如 $gutterhalf: (sz(gutter)
$sizes: (
small: 768,
medium: 1024,
large: 1200,
xlarge: 1600,
gutter: 48
);
然后给他们一个具有以下功能的装置:
@function sz($size) {
@return map-get($sizes, $size) + px;
}
如何通过使用函数中的一个值进行计算来定义变量,例如
$gutterhalf: (sz(gutter) / 2);
那么这个变量将返回48px/2=24px?我知道我可以使用无单位值,然后添加单位,就像这样:
$gutterhalf: (map-get($sizes, gutter) / 2) + px;
有没有办法用函数的值来处理它呢?通常我会用它来做现场的sass演示,但如果没有它自动切换到dart sass,我似乎无法共享我的sass演示。很奇怪
但我已经将结果输出到id为的divs上的before伪内容样式
看小提琴实验的想法
下面是scss代码
//数组没有像素单位,只有整数
$sizes_0:(
sm:768,
md:1024,
lg:1200,
xl:1600,
排水沟:48
);
//下面的两个函数都使用上面的数组
//此功能允许您传递潜水数据
@函数sz_0($size,$divide:1){
@返回map get($size\u 0,$size)/$divide+px;
}
//这输出24px
$gutterhalf_0:sz_0(排水沟,2);
//此函数仅返回数组值
@函数sz_2($size){
@返回map get($size\u 0,$size);
}
//这输出24px
$gutterhalf_2:(sz_2(排水沟)/2)+px;
//像素单元阵列
$sizes_1:(
sm:768px,
md:1024px,
lg:1200px,
xl:1600px,
排水沟:48px
);
//此函数只返回带有单位的数组值
@函数sz_1($size){
@返回map get($size\u 1,$size);
}
//这输出24px
$gutterhalf_1:sz_1(排水沟)/2;
//sass的结果是内容
#sz_0::之前{
内容:“#{$gutterhalf_0}”;
}
#司徒一:以前{
内容:“#{$gutterhalf_1}”;
}
#司徒二:以前{
内容:“#{$gutterhalf_2}”;
}
谢谢。我一定是做错了什么。如果我完全按照上面所描述的那样做,首先是映射,然后是函数,然后我定义$gutter\u half:sz(gutter)/2代码>,当我使用变量$gottle_half时,输出值是'48px/2',而不是'24px'。我看到你在使用另一个$divide变量-使用单位值直接除法不起作用?我将在SCSS中添加一些注释以更好地解释。看到-它的输出与我最初的示例相同。我只是想知道我是否可以使用一个带有单位的值,从一个映射中,并用SCS进行除法,而不需要额外的变量/除法器标记-它似乎不这样工作?再次感谢您的评论!从您所写的内容来看,我似乎需要使用除法器,以便从映射中的单位值到我想要的最终值(在本例中,除以2=24px,如$gutterhalf_0所示)。我可以使用除法器,也可以只使用普通数值对一个值进行除法,因为它是一个带px的字符串。要将像素单位值一分为二,必须有一定的距离。