繁体   English   中英

如何覆盖SCSS变量?

[英]How to override scss variables?

我当前正在使用materialize.css,并且我想覆盖默认变量,以便主文件保持不变。 我在我的主要stylesheet.scss中尝试的是

@import '_materialize';
@import '_modified';
@import '_new';

在我的_modified文件中

$secondary-color: color("blue", "darken-1");

在materialize.scss中,已导入_variable.scss(默认框架文件),其中辅助颜色值为

$secondary-color: color("teal", "lighten-1") !default;

仍然是次要的青绿色。如何用这样的外部scss文件覆盖?

编辑1:找到解决方案。

$secondary-color: color("teal", "lighten-1") !default;

由于未加载实现CSS的颜色mixin文件,因此无法正常工作。

@import "materialize/components/color";之后的@import "materialize/components/color"; 在modified.scss中,然后

$secondary-color:color("teal", "lighten-5");

现在工作。

见下面的例子

 $secondary-color: color("blue", "darken-1");
 .someClass{
      $secondary-color: color("teal", "darken-1") !important;
      .someClass h2{
            color: $secondary-color;
      }
 }

首先(而不是最后)导入您的var:

@import '_your-vars'; // your own vars
@import '_materialize'; // includes framework vars
... // other modifications

据我了解,SCSS !default标志:这是一个后备,以前没有声明过任何东西。 因此,当您首先导入变量(仅导入变量,不导入可能具有依赖关系的其他修改)时,它将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM