仅在本地覆盖导入模块中的全局变量?

时间:2016-07-01 08:22:21

标签: css sass

我有包含

的main.scss文件(在CSS分页媒体的上下文中)
$margin-left 2cm;

@page {
   size: a4;
   margin-left: $margin-left;
}

@import "_toc";

....

和包含

的_toc.scss
$margin-left 4cm;

@page toc {
     margin-left: $margin-left;
}

所有页面的默认页边距应为2厘米,但在特定页面上(目录)我需要4厘米

在_toc.scss中重新分配$ margin-left会修改全局变量的值。

是否有一些机制可以在本地覆盖全局变量(仅在_toc.scss文件中),而不是使用特定于_toc.scss的专用变量?

2 个答案:

答案 0 :(得分:0)

为什么不使用相同的变量值并将其称为 margin-left: $margin-left + 2;,它会在不更改变量值的情况下提供您想要的相同结果。如果您仍想更改值,可以在@page toc内定义新值,这不会改变全局值

答案 1 :(得分:0)

尝试将覆盖变量放在选择器块中:

@page toc {
    $margin-left: 4cm;
    margin-left: $margin-left;
}

演示:http://www.sassmeister.com/gist/456110c2fa766d4250ecbb9d840cf38f