html - 在 sas mixins 上工作以根据 margin 位置附加值

标签 html css sass mixins scss-mixins

您好,我正在编写一个 mixin,我想根据边距位置附加值我已经走了很远,但不确定如何前进。

@mixin margin ($value, $positions...){
  @each $position in $positions {
    margin-#{$position}: $value;
  }
}

.margin-top {
  @include margin(10px, top);
}
.margin-multiple {
  @include margin(10px, top, left, right);
}

在我的 magin-multiple 选择器中,如果我传递三个不同的值,它应该附加到相应的边距位置。例如,如果我包含 @include margin(10px, 8px, 5px, top, left, right); 我的预期输出如下

.margin-multiple {
   margin-top: 10px;
   margin-left: 8px;
   margin-right: 5px;
}

如有任何帮助,我们将不胜感激。

最佳答案

这个解决方案怎么样:

@mixin margin ($values, $positions) {
    @for $i from 1 through length($values) {
        margin-#{nth($positions, $i)}: nth($values, $i);
    }
}

它以列表作为参数,所以你可以这样调用它:

.margin-multiple {
    @include margin(10px 8px 5px, top left right)
}

这会产生预期的输出:

.margin-multiple {
    margin-top: 10px;
    margin-left: 8px;
    margin-right: 5px;
}

始终确保对位置 使用相同长度的列表!

关于html - 在 sas mixins 上工作以根据 margin 位置附加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51240951/

相关文章:

javascript - 如何在同一页面上异步显示表单发布数据(不刷新页面)?

jquery - 使用 jquery ui droppable 和 elementFromPoint 获取放置元素下方的元素

CSS 行高与字体大小成比例地反转

sass - 波旁威士忌 整洁 : How to expand column to match outer-container?

javascript - 按钮不改变背景和文本的颜色

javascript - 站点导航栏不在较小的屏幕上播放动画

javascript - 如何将 HTML 标签限制为 Div?

javascript - 如果选择此选项并且此选项更改为 3 选项

css - Bootstrap Column,隐藏而不是隐藏

jQuery fadeOut 将不透明度设置为 1