【发布时间】:2018-10-30 07:54:55
【问题描述】:
我正在使用 SCSS,并希望在顶部指定一个基于 px 和 rem 值之和的变量。
我了解无法在 SCSS 变量中组合单位类型,因此我改用 calc():
$navbar-top: calc(40px + 1 rem);
在样式表的更下方,我想包含$navbar-top 的否定版本。
这两个我都试过了,都没有成功:
(-$navbar-top)
-#{$navbar-top}
知道如何否定 SCSS 变量,而无需声明新变量,或在整个 CSS 中再次编写 calc。
谢谢。
编辑
- 如下面的 cmets 所述,这不是 Sass negative variable value? 的副本
- 这个问题是关于用 calc() 否定一个变量集,这与上面的 SO 帖子无关。我已经注意到上面那个问题中提出的两种解决方案。在这种特殊情况下,它们都不起作用。
编辑 2:基于以下 TEMANI 答案的 SCSS 解决方案
在顶部声明必要的变量,包括“否定符”(-1):
$navbar-top: calc(40px + 1rem);
$neg: -1;
然后,变量可以在整个过程中使用(是否否定),如下所示:
/* Non-negated */
margin: $navbar-top 0 0;
/* Negated */
margin: calc(#{$neg} * #{$navbar-top}) 0 0;
上面的否定版本将编译为以下 CSS:
margin: calc(-1 * calc(40px + 1rem)) 0 0;
【问题讨论】:
-
@csilk 我已经尝试了所有这些解决方案,如 OP 中所述。这里的问题是计算和否定的组合。它不是重复的。
-
所以它唯一的办法就是使用另一个
calc,正如你所说的。 -
@csilk 或添加重复注释的人,请将其删除。这两个问题是不相关的,重复的建议会误导未来的访问者。我用额外的说明编辑了 OP。