我想设置一个变量,只要它没有被设置。
SO ......
在_layout.scss
:
$page-width: 1100px;
但是,在我的_module.scss
文件中,我不想依赖_layout.scss
我想做这样的事情:
$page-width = $page-width ?? 960px;
// If $page-width exists, use it, otherwise set it to a default of 960px;
我喜欢SASS 3.2中最适合的作品。我在这里找到了解决方案,否则:
答案 0 :(得分:5)
我相信你正在寻找variable defaults,并且SASS支持他们。变量默认值允许您分配变量(如果尚未使用值{}处的!
分配变量。
在您的情况下,您可以在_layout.css
:
$page-width: 1100px;
然后在_module.scss
你可以
$page-width: 960px !default;
这大致相当于说assign $page-width to 960px unless $page-width is already defined
。
查看default variables上的文档。
答案 1 :(得分:0)
是的。从版本3.1.2开始,有一个document.body.style.backgroundColor = "#e34233";
函数,该函数带有三个参数。检查条件,并根据结果返回两个值:
if
当您不想在代码的其他地方设置默认值时,这可能很有用。
答案 2 :(得分:0)
Mohamad 的答案是您的特定代码示例的最佳答案,但值得一提的是,Sass or
运算符有时可以用作 {{1 }} 运算符:
??
我说“有时”,因为只有定义了您的 $my-property: $uncertain-variable or $backup-value;
才好。
这比某些语言(咳咳 JavaScript)更可靠,因为正如 Sass docs 指出的那样:
<块引用>有些语言认为比 $uncertain-variable
和 false
更多的值是假的。 Sass 不是这些语言之一!空字符串、空列表和数字 null
在 Sass 中都是真实的。
我想您是否想以这种方式使用 0
是个人喜好问题。虽然它非常简洁,但您可能会争辩说 or
语句(或 @if
函数)更为明确。