Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css Sass:对calc()变量使用control指令_Css_Sass - Fatal编程技术网

Css Sass:对calc()变量使用control指令

Css Sass:对calc()变量使用control指令,css,sass,Css,Sass,我正试图在div上实现这一点: 计算并设置其左边距,但确保该值为正值。 因此,我得出以下结论: .div { $margin-left: calc(50vw - #{$div-width}); @if $margin-left > 0 { margin-left: $margin-left; } @else { margin-left: 0; } } 但是SASS编译器给出了:未定义的操作:“calc(50vw-603px)

我正试图在
div
上实现这一点:

计算并设置其
左边距
,但确保该值为正值。

因此,我得出以下结论:

.div {
    $margin-left: calc(50vw - #{$div-width});
    @if $margin-left > 0 {
        margin-left: $margin-left;
    } @else {
        margin-left: 0;
    }
}
但是SASS编译器给出了:
未定义的操作:“calc(50vw-603px)gt 0


有没有正确的方法来实现这一点?

calc()
是一个用于计算CSS属性值的函数,您必须在CSS中使用,但是
$margin left
变量是一个数字,不是吗?我不确定您要归档什么,如果
$margin left:
是一个数值,则此代码行没有意义:
$margin left:calc(50vw-{$div width})
我想我终于明白你想做什么了,但是你不能用SASS中的
calc()
来做数学运算,
calc()
在CSS中使用,在执行时间中计算。你可以做数学运算,但不能混合单位。我还意识到,实时计算和条件检查是sass/CSS无法实现的。sass将被编译成CSS,因此它无法获得执行值,因此无法执行对未定义的变量执行条件检查。(如果我错了,请随时纠正我)是的,你是对的。你不能用CSS实时地根据另一个属性的值来更改属性的值,你需要javascript来做这件事