Ampersand (&) in SASS-Selektoren: Erweiterung des übergeordneten Geltungsbereichs
In SASS dient das kaufmännische Und-Symbol (&) als leistungsstarkes Werkzeug für Erweitern der übergeordneten Selektoren. Es ermöglicht Ihnen, Regeln innerhalb eines Mixins so zu verschachteln, dass der Klassenname des übergeordneten Selektors enthalten ist. Die Verwendung des kaufmännischen Und-Zeichens am Ende eines Selektors stellt jedoch eine besondere Herausforderung dar.
Das Problem besteht darin, sicherzustellen, dass der Selektor den Namen der Anruferklasse enthält. Betrachten Sie das folgende Sass-Mixin:
<code class="sass">@mixin button-variant($color, $background, $border) { ... .foreverAlone { ... } .iThink .illNeverWork& { color: $pinkUnicornRainbow; ... } }</code>
Wenn dieses Mixin innerhalb einer anderen CSS-Klasse aufgerufen wird, enthält der generierte Code nicht den Klassennamen des Aufrufers. Stattdessen wird Folgendes erzeugt:
<code class="css">.foreverAlone { ... } .iThink .illNeverWork.callerClass { color: #123ABC; ... }</code>
Um dieses Problem zu lösen, können Sie die folgenden Techniken verwenden:
Sass-Versionen 3.2 und älter:
<code class="sass">@mixin button-variant($color, $background, $border) { ... .foreverAlone, .iThink &.illNeverWork { color: $pinkUnicornRainbow; ... } }</code>
Sass Version 3.3:
<code class="sass">@mixin button-variant($color, $background, $border) { ... .iThink &-illNeverWork { color: $pinkUnicornRainbow; ... } }</code>
Sass Version 3.4:
<code class="sass">@mixin button-variant($color, $background, $border) { ... $parent: &; @at-root .iThink#{&} { color: $pinkUnicornRainbow; ... } }</code>
Durch die Implementierung dieser Techniken können Sie übergeordnete Selektoren innerhalb eines Mixins effektiv erweitern und sicherstellen, dass der generierte Code den Namen der Aufruferklasse enthält.
Das obige ist der detaillierte Inhalt vonWie erweitere ich übergeordnete Selektoren in SASS-Mixins, wenn ich das kaufmännische Und (&) am Ende eines Selektors verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!