2

トグル可能なサイドメニューを持つコンテナ要素を考えてみましょう。openCSS の両方の子要素に影響を与えるコンテナのクラスを切り替えるだけで、サイド メニューを開いたり閉じたりできます。.container は画面の幅にまたがり、サイド メニューは幅 200px です。

<div class="container">
    <aside></aside>
    <div class="content"></div>
</div>

私はこれを実装しており、うまく機能しています。.contentそれでは、クラスにレスポンシブ デザインを導入しましょう。div.content の幅が 1000px より大きい場合にメディア クエリをターゲットにしたいので、サイド メニューが開いているかどうかを考慮する必要があります。

.container {

  &.open {
    @media (min-width: 1201px) { // 1000px + 200px for the menu
      .content {
        ...
        #id { ... }
        div { ... }
      }
    }
  }

  &:not(.open) {
    @media (min-width: 1001px) {
      /* Duplicate from above! */
    }
  }
}

これは完全に機能しますが、両方のクエリで CSS を複製する必要があります。.content CSS をコピーして貼り付けないように、これを記述する方法はありますか? ミックスインは CSS の複雑なチャンクをサポートできますか? とにかく、SASSでクエリを「カンマで区切る」には?

4

1 に答える 1

1

これはうまくいきました。

@mixin content-1000px {
  .content {
    ...
    #id { ... }
    div { ... }
  }
}

&.open { @media (min-width: 1201px) { @include content-1000px; } }
&:not(.open) { @media (min-width: 1001px) { @include content-1000px; } }
于 2013-09-27T18:21:29.320 に答える