加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

SASS中自定义变量的使用是怎样,哪些事项需注意

发布时间:2023-10-21 15:19:57 所属栏目:语言 来源:
导读:SASS 中定义的变量,后设置的值会覆盖旧的值。

$color: red;

$color: blue;

.btn {

color: $color;

}

编译后为:

.btn {

color: blue; }

如果你编写了一个 UI 库提供 SAS
SASS 中定义的变量,后设置的值会覆盖旧的值。
 
$color: red;
 
$color: blue;
 
.btn {
 
    color: $color;
 
}
 
编译后为:
 
.btn {
 
  color: blue; }
 
如果你编写了一个 UI 库提供 SASS 文件,可能会提供一些参数供用户使用时自定义。而在 SASS 组件内部,我们需要应用上用户设置的这些值。但是如果使用者没有自定义变量的值,那这些变量应该有自己的默认值。
 
利用前面提到的覆盖机制是不能实现的。因为无论是你在 @import 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";
 
注意:需要将自定义的值先于 @import,否则也不生效。
 
此时编译结果将是想要的那样,应用上了外部自定义的变量值。
 
.btn {
 
  color: blue; }
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章