关于断点布局更改的 Susy 2.1.3 问题

Susy 2.1.3 issue regarding layout change on breakpoint

帮帮我,你这个时髦的苏西,我快要崩溃了!我正在尝试为我的项目制作最有效的布局,但我遇到了一些我无法用 Susy/breakpoint 弄清楚的事情。

我希望布局列在断点处发生变化,而不必更改 div 的所有 individual 跨度(因为会有许多不同的跨度宽度)方式。而不是仅仅 1 个并更改 3 或 4 个不同的列布局)。

现在我唯一能让它工作的方法是改变 divs 的跨度并保持列不变,但我希望 divs 始终保持相同的大小,然后根据剩余的列数放置到位。

我认为这正是我编写@include 的方式。我试过在断点内做 container/layout 而不是 with-layout 但没有成功。 我知道这可能是一个我没有看到的简单修复。

编辑:我还注意到,无论我如何更改,div 始终采用默认的 $susy 映射,并且不会在断点处更改它。

SCSS:

@import 'susy';
@import 'breakpoint';

$layout1: layout(12 .125 split fluid center);
$layout2: layout(16 .125 split fluid center);
$layout3: layout(24 .125 split fluid center);

.container {
  @include container;
  @include with-layout($layout1);
  background: orange;

    @include breakpoint(600px) {
      @include with-layout($layout2);
      background: red;
    }

    @include breakpoint(1000px) {
      @include with-layout($layout3);
      background: blue;
    }

}

.testbox {
  @include span(1);  
}

html:

<div class="container">

  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>
  <div class="testbox">hello</div>

</div>

with-layout 仅更改用于 Susy 的设置 mixins/functions 嵌套在其中:

@include with-layout($layout2) {
  // code nested here will use the $layout2 settings
}

任何对 with-layout 的调用都没有嵌套 - 因此没有任何变化。这正是@cimmanon 试图在评论中解释的内容。同样,@media 仅更改直接嵌套在其中的内容 — 因此您的颜色可以很好地更改,但您的跨度不会。颜色实际上是嵌套的,跨度不是。

因为Sass是预处理过的,所以span(1)不能有多个输出,除非调用多次。现在你调用它一次,所以它有一个输出。如果您在不同的布局上下文中多次调用它,您可以获得不同的输出。

// This will give you different spans at different breakpoints:
@include breakpoint(600px) {
  @include with-layout($layout2) {
    @include span(1);
    background: red;
  }
}

// you can also use the susy-breakpoint shortcut:
@include susy-breakpoint(1000px, $layout3) {
  @include span(1);
  background: blue;
}