打印样式表中的Sass变量覆盖“所有”样式表中的变量

时间:2013-03-26 08:14:54

标签: css sass compass-sass

我使用最新的SASS / Compass版本来开发CSS。我已经在“media = all”样式表的开头声明了一些SASS变量,如下所示:

$var1: red;
$var2: blue;
$var3: black;
$var4: green;

稍后在这个SCSS文件中我导入了一个打印样式表(@import'print.scss';),如下所示:

@media print {
   $var1: black;
   $var2: black;
   $var4:black;
}

我认为,如果浏览器处于“打印模式”,则打印样式表中的变量会覆盖“正常”变量。但变量确实会覆盖始终之前声明的“正常”变量。

我有点困惑,感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:2)

根据this个问题,您目前的表格基本上不可能。如果您想实现这一目标,则必须导入使用$varX的每种样式,例如:

$blue: blue;

.test{
    color: $blue;
}

@media print {
    $blue: pink;
    .test{
        color: $blue;
    }
}

输出:

.test{color:blue}@media print{.test{color:pink}}

这不是理想的解决方案(你会得到很多重复的代码),但不幸的是,由于CSS的工作方式,你可以做到这一切。

这可能是一个更好的解决方案:

$blue: blue;
$print_blue: pink;

.test{
    color: $blue;
    text-align: right;
    @media print {
        color: $print_blue;
    }
}

输出:

.test{color:blue;text-align:right}@media print{.test{color:pink}}