【问题标题】:Sass is returning a list of negative numbers instead of subtracting themSass 正在返回一个负数列表,而不是减去它们
【发布时间】:2014-07-03 11:46:36
【问题描述】:

我正在尝试使用长度进行数学运算:

$itemWidth: 25px;
$item2Width: 80px;

element {
    width: $itemWidth/2-$item2Width/2-5px
}

但是,它输出-52.5px -5px 怎么做对呢?

【问题讨论】:

标签: sass


【解决方案1】:

Sass 3.2 解析器似乎对您在运算符之间缺少空格感到困惑(它认为您的意思是负 5px 而不是减去 5px):

element {
    width: $itemWidth / 2 - $item2Width / 2 - 5px;
}

这在 Sass 3.3 中已修复,但您需要将 Compass 升级到 1.0(因为 0.12 与 Sass 3.3 不兼容)。

请注意,Sass 总是将前面紧跟破折号/连字符的数字视为否定。这意味着 1 -2 被视为包含正数 1 和负数 2 的数字列表,而不是计算负数 1。

【讨论】:

  • 哦,它确实有效,谢谢!我会检查那些较新的版本(虽然我都是通过 gem 安装的,所以我会得到最新版本)
  • Compass 0.12 是稳定版本,所以从技术上讲,您确实拥有最新版本。要获得 1.0,您必须使用 --pre 标志 (sudo gem install compass --pre) 进行安装。
【解决方案2】:

将计算括在括号中。这告诉 SASS 整个事情都是计算的一部分。

$itemWidth: 25px;
$item2Width: 80px;

element {
    width: ($itemWidth/2-$item2Width/2-5px);
}

【讨论】:

  • 我做了(-$itemWidth/2-$item2Width/2-5px);,但它仍然生成-52.5px -5px;
  • @simPod 你确定你没有(-$itemWidth/2-$item2Width/2 -5px);,在 2 和减号之间有空格吗?
  • @Paulie_D 是的,很确定。我有这个(-$itemWidth/2-$item2Width/2-5px);
  • 是的,请参阅i.imgur.com/nNHA2nJ.png。这是什么魔法?我有指南针 0.12.6
  • 括号没有任何作用。无论有没有它们,您都会得到相同的结果(请参阅:sassmeister.com/gist/495f1d7d587a98b150ed)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-07
  • 2011-08-01
  • 2018-01-18
  • 2022-01-15
  • 1970-01-01
相关资源
最近更新 更多