【发布时间】:2013-12-06 15:58:28
【问题描述】:
无论出于何种原因,我永远无法直接在 SASS 中获得简单的数学函数。我有一种情况,我想将两倍的装订线宽度添加到我已经在其他地方定义的宽度。两种宽度都在 EMS 中,但似乎我正在做的添加将它们视为字符串。以下是我尝试过的一些事情:
$width: 18.75em; /* 300px */
$grid-spacing: 2em;
.column { margin-right: $width + $grid-spacing*2; }
.column { margin-right: 18.75em2em; } 中的结果
.column { margin-right: $width + ($grid-spacing*2); }
.column { margin-right: 18.75em2em; } 中的结果
.column { margin-right: $width + #{$grid-spacing*2}; }
.column { margin-right: 18.75em + 2em; } 中的结果
.column { margin-right: #{$width + #{$grid-spacing*2} };
.column { margin-right: 18.75em + 2em; } 中的结果
.column { margin-right: #{$width} + #{$grid-spacing*2}; }
.column { margin-right: 18.75em + 2em; } 中的结果
那么我在这里错过了什么? According to an issue on the SASS Github,在对它们进行数学运算之前,我不应该依赖从值中清除单位。我认为,问题在于+ 运算符用于连接和数学运算,这可能就是为什么我的值被视为字符串而不是可以加在一起的数字的原因。
想法?
【问题讨论】:
-
我不能让这个失败,从命令行使用
sass --scss,或者sassmeister.com。不管怎样,我最终得到margin-right: 22em;我们能看到一小段 valid SCSS/SASS 失败了吗?当然,上面的示例无效,因为margin-right不在选择器内。 -
这对我来说也符合预期。您使用的是旧版本的 SASS 吗?我也尝试过切换测试文件的字符编码,但还是没问题。
-
嗯...我显然正在运行 SASS 3.2.6。命令是
$ sass -v -
“我认为,问题在于 + 运算符用于连接以及数学运算” + 视为加法。
标签: css sass compass-sass