带SASS的条件选择器名称

时间:2014-12-16 14:37:24

标签: css sass

我希望生成类似grid-col-1grid-col-md-1grid-col-lg-1grid-col-2grid-col-md-2grid-col-lg-2 ...

的类

所以,我已经创建了这个mixin来做到这一点:

$grid-columns: 12;
@mixin grid-col-builder($type: false) {
  @for $i from 1 through $grid-columns {
    $selector: 'grid-col-';
    @if $type { $selector: $selector + $type + '-' + $i; }
    @else { $selector: $selector + $i; }
    .#{$selector} { width: $i/$grid-columns*100%; }
  }
}

但我仍然认为代码有点重复。是否有更聪明的方法来创建在选择器名称中添加类型的条件?

1 个答案:

答案 0 :(得分:4)

使用if()功能

可以使事情变得更紧凑
$grid-columns: 12;
@mixin grid-col-builder($type: false) {
  @for $i from 1 through $grid-columns {
    .#{'grid-col-' + if($type, $type + '-', '') + $i} {
        width: $i / $grid-columns * 100%;
    }
  }
}