【发布时间】:2014-10-13 08:28:03
【问题描述】:
我正在使用类似三元的语句来初始化 Sass 中的变量。这允许我将一些默认变量设置为 Zurb Foundation 使用的相同变量,但如果我决定不包含 Foundation 模块,那么事情不应该落在他们头上。
$nav-link-icon-color: if( global-variable-exists($topbar-link-color), $topbar-link-color, #fff) !default;
在我升级到 Sass 3.4 之前,这一切正常。紧接着,我开始收到这个错误:
error sass/style.scss (Line 20 of sass/partials/_navigation-icons.scss: $name: #ffffff is not a string for `global-variable-exists')
$topbar-link-color 在我检查时已被初始化。它是一个值为 #fff 的字符串,由 Foundation 声明如下:
$topbar-link-color: #fff !default;
我什至尝试将未初始化的变量传递给global-variable-exists():
$nav-link-icon-color: if( global-variable-exists($happy-scrappy), $happy-scrappy, #fff) !default;
但 Sass 仍然讨厌这样:
error sass/style.scss (Line 21 of sass/partials/_navigation-icons.scss: Undefined variable: "$happy-scrappy".)
这对我来说很奇怪,因为global-variable-exists() 的重点是,你知道,检查变量是否存在。似乎发送到global-variable-exists() 的参数没有被正确解析,但我不知道。
我尝试卸载所有版本的 Sass 和 Compass,然后重新安装,最后重新启动无济于事。我什至已经恢复到我之前使用的 Sass 3.3.14,并且仍然存在相同的错误。
指南针 1.0.1 萨斯 3.4.0 基础 5.3.3 红宝石 2.0.0p481 赢7 64位
编辑:经过进一步研究,我的错误做法是在 sass 3.2.19 和 compass 0.12.2 中工作。
【问题讨论】:
标签: sass compass-sass