我可以在断点内设置Sass变量吗?

时间:2014-05-22 15:58:08

标签: sass breakpoint-sass

是否可以在单个sass-breakpoint中设置一次变量的值,而不是每次使用变量?

换句话说,我想这样做:

$tab: 600px;
$wp: 100%;

@include breakpoint($tab) {
    $wp: 95%;
}

.alpha {
    // ...
    width: $wp;
}

.beta {
    // ...
    width: $wp;
}

.gamma {
    // ...
    width: $wp;
}

......而不是这个:

$tab: 600px;
$wp: 100%;
$wp-tab: 95%;

.alpha {
    // ...
    width: $wp;
    @include breakpoint($tab) {
        width: $wp-tab;
    }
}

.beta {
    // ...
    width: $wp;
    @include breakpoint($tab) {
        width: $wp-tab;
    }
}

.gamma {
    // ...
    width: $wp;
    @include breakpoint($tab) {
        width: $wp-tab;
    }
}

我认为第一种方法不会按原样运作。还有另一种方法可以达到相同的效果吗?这种做法是个坏主意吗?

1 个答案:

答案 0 :(得分:3)

这是不可能的。

引用Sass的开发人员 nex3

  

虽然这很酷,但却与之相反   Sass样式表的现有语义。你已经概述了什么   有一个含义:它按顺序设置变量两次然后   访问它(模拟一些范围问题)。顺序而且很大程度上   Sass的命令性本质意味着那种自动复制   你所描述的规则变得非常复杂。我们其实   考虑到处理SassScript&和非常相似的东西,结束了   意识到实际上是不可能这样做并保留   现有的语义。

     

你现在可以做的最好的近似是把风格   需要根据参数改变混音,并将其包含在媒体中   查询。

来源:https://github.com/nex3/sass/issues/1227