【问题标题】:Pass dynamic Values to the SCSS将动态值传递给 SCSS
【发布时间】:2016-12-31 08:12:50
【问题描述】:

我正在使用 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 。

【问题讨论】:

  • 您可以使用 SCSS 函数并将参数发送为 10px 、-10 和 30 但我怀疑我们不能像您在 css 中所期望的那样做
  • 是否有一些我可以遵循的示例来实现与 SCSS 相同的效果?找不到它如何从 html 页面传递值。

标签: css sass


【解决方案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,您可以从一个地方完成

【讨论】:

    【解决方案2】:

    您可以在这里使用 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

    希望对你有帮助

    【讨论】:

    • 啊,是的,mixin 可能会更好用
    • 嗯...你修改了它,让它看起来像我的答案?还是删了吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 2021-11-05
    • 2012-07-14
    • 2021-10-15
    • 2017-11-23
    • 1970-01-01
    相关资源
    最近更新 更多