将动态值传递给SCSS

时间:2016-12-30 06:41:59

标签: css sass

我正在使用SCSS作为样式表,我只是习惯了它。

想对以下情况提出一些建议。

假设我有三个带有以下内联参数的div标签,

<div style="margin-top:10px">....</div>
<div style="margin-top:-10px">....</div>
<div style="margin-top:30px">....</div>

现在我可以使用不同的值创建3个CSS类样式以避免内联css。

但是有一种方法可以创建一个单独的类作为margin-top,并为每个div传递10px,-10px和30px的值。

2 个答案:

答案 0 :(得分:1)

您可以在此处使用scss函数。您可以为margin-top编写一个函数,并接受一个参数

 @mixin margintop($top){
        margin-top:$top;
    }

并且对于每个单独的div,您可以发送与

不同的参数
div:first-child{
  @include margintop(10px);
}
div:nth-child(2){
  @include margintop(-10px);
}
div:nth-child(3){
  @include margintop(30px);
}

除此之外,我们无法访问html中的scss函数并向其发送参数

此引用可能对您有用linked question

希望有所帮助

答案 1 :(得分:1)

您可以使用mixins http://thesassway.com/advanced/pure-sass-functions

@mixin my-mixin($some-number) {
     margin-top: $some-number;
 }

现在我们使用@include指令插入我们的mixin代码。

div.some-class {
  @include my-mixin(10px);
}

现在,如果您决定要设置margin-bottom,则可以从一个地方进行设置