检查SASS中是否定义了一个variables
正如标题所说,我正试图检查一个variables是否在SASS中定义。 (我使用罗盘,如果有任何不同的区别)
我发现Ruby的等价物是:
defined? foo
给了在黑暗中的一枪,但它只是给了我错误:
defined": expected "{", was "?
我find了一个解决方法(显然只是在所有情况下定义variables,在这种情况下它实际上更有意义),但我真的想知道这是否有可能的未来
对于Sass 3.3和更高版本
从Sass 3.3开始,有一个variable-exists()
函数。 从更新日志 :
- 现在可以使用这些新函数来确定不同的Sass构造的存在:
variable-exists($name)
检查variables是否在当前范围内parsing。global-variable-exists($name)
检查给定名称的全局variables是否存在。 …
用法示例:
$some_variable: 5; @if variable-exists(some_variable) { /* I get output to the CSS file */ } @if variable-exists(nonexistent_variable) { /* But I don't */ }
对于Sass 3.2.x和更早版本(我的原始答案)
我今天遇到了同样的问题:试图检查是否设置了variables,如果是的话添加一个样式,使用混合等。
在读完isset()
函数不会被添加到sass之后 ,我使用!default
关键字find了一个简单的解决方法:
@mixin my_mixin() { // Set the variable to false only if it's not already set. $base-color: false !default; // Check the guaranteed-existing variable. If it didn't exist // before calling this mixin/function/whatever, this will // return false. @if $base-color { color: $base-color; } }
如果false
是variables的有效值,则可以使用:
@mixin my_mixin() { $base-color: null !default; @if $base-color != null { color: $base-color; } }
- 我应该在长时间运行的AsyncTask中使用getApplicationContext或Activity.this
- 如何使用Entity Framework 4.1“code only”stream利的API来映射char属性?
- Google App Engine上的Ruby on Rails应用程序
- “无法find捆绑器”错误
- 如何将信息添加到Ruby中的exception消息?
- Ruby on Rails – 对于xxx / xxxx / xxxx,无法将“\ x89”从ASCII-8BIT转换为UTF-8
- 什么是复制activerecordlogging最简单的方法?
- 我怎样才能密码保护我的/ sidekiq路线(即要求authentication的Sidekiq :: Web工具)?
- 我应该在Heroku Cedar上使用薄或独angular兽
- 如何从terminal运行Ruby代码?
- 从Ruby控制台创build一个devise用户