variables - Sass/Scss 公式的错误结果
问题描述
我对 sass 公式有疑问,公式通过了,但没有给出正确的结果。
@for $i from 0 through 99 {
$j:0;
@if $i>15 {
$j:1;
}
@if $i>31 {
$j:2;
}
@if $i>47 {
$j:3;
}
@if $i>63 {
$j:4;
}
@if $i>79 {
$j:5;
}
$k:$i%16;
$calc-pos-y:calc(#{$j*20%} + #{#{$i%8*$i%8}px});
}
例如,当$i=91
,通常$i%8*$i%8
应该是3*3=9
,所以$calc-pos-x: calc(100% +9px)
。但是,我明白了calc(100% +1px)
。
随着我的增加$i
,我相继获得:
calc(100% +0px)
calc(100% +1px)
calc(100% +4px)
calc(100% +1px)
对于$i=88
我来说calc(100% +0px)
,这很好。
对于$i=89
我来说calc(100% +1px)
,这很好。
对于$i=90
我来说calc(100% +4px)
,这很好。
我认为对于$i=91
结果是(91*91)%8
,所以8281%8=1
。
我怎么能有3*3=9
?
$calc-pos-y:calc(#{$j*20%} + #{#{$i%8}*#{$i%8} px}); //give an error
解决方案
这是一个简单的运算符优先级问题,您在公式中忘记了括号。尝试这个:
$calc-pos-y: calc(#{$j * 20%} + #{($i % 8) * ($i % 8)}px);
推荐阅读
- haskell - haskell,IO Monoid 关联性是否被破坏?
- r - R中的plm包不加载
- flutter - Dart、Flutter、Future Builder、ListViewBuilder
- python - 无论选择如何,单选按钮都返回零值
- .net - 在 AWS 上托管按计划运行的 .NET 控制台应用程序的最佳方法是什么?
- kubernetes - Prometheus Probe CRD 不探测目标
- git - SSH - 服务器上的权限被拒绝(公钥)
- javascript - Angular - 没有手动刷新就无法加载数据
- mysql - 获取具有不同 id 的每一行的最后一个条目
- php - 我想知道这个指令的含义