ホームページ >ウェブフロントエンド >CSSチュートリアル >SASS セレクターでアンパサンド (&) を使用する方法: ミックスインによるネストの課題を解決する

SASS セレクターでアンパサンド (&) を使用する方法: ミックスインによるネストの課題を解決する

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 05:00:02369ブラウズ

How to Use the Ampersand (&) in SASS Selectors: Solving Nesting Challenges with Mixins

SASS セレクターのアンパサンド (&): 使用法と回避策

CSS の前処理言語である SASS では、アンパサンド (&) 記号が使用されます親セレクターを表すため、コードの再利用と保守が可能になります。ただし、アンパサンドを末尾またはセレクターの一部として使用すると、問題が発生する可能性があります。

問題の概要

LESS の動作を模倣することを目的としたミックスインには、アンパサンド (&) が末尾にあるため、不正な出力が発生します。望ましい結果は、以下に示すように、呼び出し元クラスが後続の各レベルに追加されるネストされたセレクターのセットを生成することです。

.callerClass .foreverAlone{
    ...
} 

.callerClass .iThink .illNeverWork.callerClass{

    color: $pinkUnicornRainbow;
    ...
}

Solutions

For Sassバージョン 3.2 以下では、親セレクターを使用する有効な方法は次のとおりです。

&, &.bar, &#bar, &:after, &[active]

Sass 3.3 では、次の構文が追加されています。

&bar, &-bar

Sass 3.4 では、新しい機能が導入されています。アンパサンドは変数に割り当てて @at-root ルール内で使用できます:

$foo: &;
@at-root bar#{&} {
    color: red;
}

問題への適用

指定されたミックスインに対処するには、アンパサンドは、次のように呼び出し元クラスと組み合わせて使用​​する必要があります:

@mixin button-variant($color, $background, $border)
{
    ...
    .callerClass&.foreverAlone{
        ...
    }

    .callerClass&.iThink .illNeverWork.callerClass& {

        color: $pinkUnicornRainbow;
        ...
    }
}

以上がSASS セレクターでアンパサンド (&) を使用する方法: ミックスインによるネストの課題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。