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来做这件事