SCSS/SASS:如何动态生成一个以逗号分隔的类的列表

我正在使用SSS的SCSS语法来创建动态网格系统,但我遇到了障碍。

我试图使网格系统完全动态,像这样:

$columns: 12;

然后我创建列如下:

@mixin col-x {
  @for $i from 1 through $columns {
  .col-#{$i} { width: $column-size * $i; }
  }
}

其中输出

.col-1 {
    width: 4.16667%;
  }

.col-2 {
    width: 8.33333%;
}
etc...

这很好,但我想做的下一步是动态生成一个列表类的长列表,以逗号分隔,基于选择的$列数 – 例如我想它看起来像这样:

.col-1,.col-2,.col-3,.col-4,etc... {
float: left;
}

我累了这个:

@mixin col-x-list {
  @for $i from 1 through $columns - 1 {
  .col-#{$i}-m { float: left; }
  }
}

输出是这样的:

.col-1 {
  float: left;
}
.col-2 {
  float: left;
}
etc...

我有点停留在这里的逻辑以及所需的SCSS语法创建这样的东西。

有没有任何想法?

谢谢

解决方法

我想你可能想看看@extend。如果你设置了像这样:
$columns: 12;

%float-styles {
  float: left;
}

@mixin col-x-list {
  @for $i from 1 through $columns {
      .col-#{$i}-m { @extend %float-styles; }
  }
}

@include col-x-list;

它应该在您的CSS文件中呈现为:

.col-1-m,.col-2-m,.col-3-m,.col-4-m,.col-5-m,.col-6-m,.col-7-m,.col-8-m,.col-9-m,.col-10-m,.col-11-m,.col-12-m {
  float: left;
}

@extend in the docs

希望这可以帮助!

相关文章

前言 最近项目做完,用户需要兼容IE,于是开展了兼容性的调整工作。边调整边想感叹IE真是个沙雕。。特将...
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习。 1、text-indent text-indent 属性规...
前言 政府网站会遇到公祭日的时候,网站整体颜色变灰的情况。今天正好调了一下。在此把解决方案分享给大...
需求 项目里有个消息中心,当有消息的时候,小铃铛图标可以晃两下,提示当前有信息。 实现过程 书写css...
html代码 css代码 效果图
在一些界面上 , 如果每个icon都去找图片还是相当麻烦的 , 直接使用css画出icon就方便的多了 , 下面两个...