5

我使用最新的 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;
}

我认为,当浏览器处于“打印模式”时,打印样式表中的变量才会覆盖“正常”变量。但是变量确实总是覆盖之前声明的“正常”变量。

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

谢谢!

4

1 回答 1

2

根据这个问题,您目前的形式基本上是不可能的。如果你想实现这一点,你必须导入每个使用你的样式$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}}
于 2013-03-26T09:21:08.313 回答