在断点处更改`$ column-width`,但不在列数中更改

时间:2014-06-22 06:16:53

标签: css susy-compass

我见过的大多数Susy示例似乎都处理了在给定断点处列数发生变化的情况,即:

$total-columns: 4;
$large: 12;

// code based on 4 columns

@include at-breakpoint($large) {
    // code based on 12 columns
}

但是,当您希望列数保持不变时,(例如)只是会更改列宽?像这样:

$total-columns: 12;
$column-width: 3em;

$large: 64em;
$large-column-width: 3.75em;

@include at-breakpoint($large) {
    $column-width: $large-column-width; // automagically changes previously declared column-widths.
}

我希望在断点之前使用columns()span-columns()自动将其值调整为新的列宽,而不必重新声明它们。

因此...

foo { @include span-columns(4, $total-columns); }

不会在断点处更改,但列的宽度会自动

这可能吗?

1 个答案:

答案 0 :(得分:0)

Susy 2使用susy-breakpoint的新more powerful shorthand syntax解决了这个问题。但Susy 1的方法并不复杂。 at-breakpoint mixin是两个动作的简单包装器:

  1. 设置媒体查询。
  2. 更改媒体查询块中的全局Susy设置
  3. 我建议下载Breakpoint(或类似的其他插件)来处理媒体查询方面的事情,但您也可以手动完成。 Susy提供了一个mixin来处理第二部分(with-grid-settings)。如果你将这两者放在一起,你就拥有了更强大的at-breakpoint版本。

    $large: 64em;
    $large-column-width: 3.75em;
    
    @media (min-width: $large) {
      @include with-grid-settings($column-width: $large-column-width) {
        // new column-width applied to code in here.
      }
    }