4

虽然我更喜欢susy在我的 css 上使用 mixins,但在某些情况下,拥有通用网格类很有用,例如在将这些声明内联的情况下用于 web 表单。

有什么办法吗?

目前我正在手动生成这些类,如下所示:

.grid-1{
    @include span-columns(1);
}
4

1 回答 1

2

网格类在像 Susy 这样的流体系统中会变得非常复杂,因为上下文很重要。我们默认不提供它(还)。我很快就把它搞定了,它应该能让你接近:

@mixin susy-classes($silent: false) {
  $base: if($silent, '%', '.');
  $selector: '#{$base}span';

  @if $silent { #{$selector} { @include span-columns(1); } }
  @else { [class^="span-"] { @include span-columns(1); } }

  #{$base}full { clear: both; }
  #{$base}omega { @include omega; }

  @for $span from 1 through $total-columns {
    $span-selector: '#{$selector}-#{$span}';
    @for $context from 1 through $total-columns {
      $total-selector: '#{$span-selector}-#{$context}';
      $total-selector: if($context == $total-columns, '#{$span-selector}, #{$total-selector}', $total-selector);
      @if $context != $span {
        #{$total-selector} {
          @if $silent { @extend #{$selector}; }
          width: columns($span, $context);
        }
      } @else {
        #{$total-selector} { clear: both; }
      }
    }
  }
}

@include susy-classes;

如果将其添加到 Susy 核心中,它可能会变得更清晰,但现在它应该可以满足您的需求。它将输出要扩展的静默类或标准类。让我知道它是如何为您工作的,并随时在 github 上提出问题以考虑将其移至核心。

于 2012-11-24T19:40:56.723 回答