博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SASS 中变量的默认值
阅读量:5239 次
发布时间:2019-06-14

本文共 897 字,大约阅读时间需要 2 分钟。

SASS 中定义的变量,后设置的值会覆盖旧的值。

$color: red;$color: blue;.btn {    color: $color;}

编译后为:

.btn {  color: blue; }

如果你编写了一个 UI 库提供 SASS 文件,可能会提供一些参数供用户使用时自定义。而在 SASS 组件内部,我们需要应用上用户设置的这些值。但是如果使用者没有自定义变量的值,那这些变量应该有自己的默认值。

利用前面提到的覆盖机制是不能实现的。因为无论是你在 UI 库之前设置还是之后,都不能影响这个导入文件中的值。如果你设置的值在导入之前,那么 UI 库中的变量因为在后面,所以你的设置会被覆盖而不起作用;如果你的设置在导入之后,那更加不起作用了。

假设这是 UI 中的样式文件:

_lib.scss

$color: red;.btn {    color: $color;}

在另一个文件中使用,并且试图自定义变量的值:

page.scss

@import 'lib';$color: blue;

或:

page.scss

$color: blue;@import 'lib';

两者编译结果均为:

.btn {  color: red; }

!default

针对这种情况,SASS 提供了 !default 标识。将该标识应用于变量值后面,表示如果该变量没有在其他地方定义或即便定义了但值为 null,那此处设置的默认值才生效,否则使用其他地方设置的那个值。

将上面 _lib.scss 进行改造:

_lib.scss

- $color: red;+ $color: red!default;.btn {    color: $color;}

使用:

$color: blue;@import "lib";

注意:需要将自定义的值先于 ,否则也不生效。

此时编译结果将是想要的那样,应用上了外部自定义的变量值。

.btn {  color: blue; }

相关资源

转载于:https://www.cnblogs.com/Wayou/p/sass_default.html

你可能感兴趣的文章
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>
React Router 4.0 基本使用
查看>>
PHP截取中英文混合字符
查看>>
【洛谷P1816 忠诚】线段树
查看>>
CDN 学习笔记
查看>>
电子眼抓拍大解密
查看>>
多线程---线程间的通信
查看>>
poj 1331 Multiply
查看>>
严重: 文档无效: 找不到语法。 at (null:2:19)
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
nodejs-Path模块
查看>>
P1107 最大整数
查看>>
EasyDarwin开源手机直播方案:EasyPusher手机直播推送,EasyDarwin流媒体服务器,EasyPlayer手机播放器...
查看>>
监控CPU和内存的使用
查看>>
Ubuntu14.04设置开机自启动程序
查看>>
ios app 单元测试 自动化测试
查看>>
强连通tarjan模版
查看>>
javascript_09-数组
查看>>