Sass のメディア クエリ内でセレクターを拡張するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-02 03:42:30
オリジナル
867 人が閲覧しました

How Can You Extend Selectors Within Media Queries in Sass?

Sass でメディア クエリを使用してセレクターを拡張する

Sass を使用する場合、メディア クエリ内からセレクターを拡張する必要がよくあります。これは、サイズや方向に基づいて要素にさまざまなスタイルを適用する場合に便利です。ただし、Sass には、メディア クエリ内から外部セレクターを拡張できないという制限があります。

提供されたコード例では:

<code class="scss">.item { ... }
.item.compact { /* styles to make .item smaller */ }

@media (max-width: 600px) {
  .item { @extend .item.compact; }
}</code>
ログイン後にコピー

Sass は構成できないため、このアプローチではエラーが発生します。あなたのためのセレクター。具体的には、メディア クエリの内部にいて、メディア クエリの外部にあるものを拡張することはできません。

代替アプローチ

この制限により、いくつかの代替方法があります。

ミックスインの使用

ミックスインと拡張クラスを作成して、メディア クエリ内外でコードを再利用します:

<code class="scss">@mixin foo {
    // do stuff
}

%foo {
    @include foo;
}

// usage
.foo {
    @extend %foo;
}

@media (min-width: 30em) {
    .bar {
        @include foo;
    }
}</code>
ログイン後にコピー

セレクターの拡張外部から

特定のユースケースには直接適用できませんが、このメソッドを使用すると、メディア クエリ内のセレクターを外部から拡張できます:

<code class="scss">%foo {
  @media (min-width: 20em) {
    color: red;
  }
}

@media (min-width: 30em) {
  %bar {
    background: yellow;
  }
}

// usage
.foo {
  @extend %foo;
}

.bar {
  @extend %bar;
}</code>
ログイン後にコピー

進行中の議論

Sass コミュニティでは、この制限に関して活発な議論が行われています。ユーザーはこの機能に対する要望を表明しており、メンテナはそれを効果的に実装する方法を検討しています。しかし、決定的な解決策はまだ見つかっていません。

以上がSass のメディア クエリ内でセレクターを拡張するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!