因为我们有一个主CSS层.在这个层中,我们使用了一个scss变量.当变量被定义在同一个层块中时,一切都完美地工作.但是当我们试图在另一个相同的层块中定义变量时.下面是我们的示例代码:
@layer main, overrides;
@layer main {
$someColor: orange;
}
@layer overrides {
$someColor: red;
}
@layer main {
// $someColor: orange;
h1 {
color: $someColor;
}
}
这样做会导致Undefined variable color: $someColor
分,sass似乎无法解析该变量.
有什么办法可以做到这一点吗?
主要目标是通过覆盖scss变量来覆盖来自第三方的css层,比如定义了primeng
css层的primeNG.要做到这一点,我们认为我们可以在导入primeNG scss之前在@layer primeng { ...scss variables here }
中导入一些被覆盖的变量.
以下是StackBlitz上的复制品: https://stackblitz.com/edit/angular-ivy-1thpuw?file=src%2Fstyles.scss个
和另一个复制试图使用separte scss文件的情况下,它会解决这个问题: https://stackblitz.com/edit/angular-ivy-1thpuw?file=src%2Fstyles.scss
在try 覆盖变量之前定义变量的最后一次复制:https://stackblitz.com/edit/angular-ivy-bsvzt8?file=src%2Fstyles.scss