首頁 > web前端 > css教學 > 主體

在選擇器末尾使用與號 (&) 時,如何在 SASS Mixins 中擴展父選擇器?

Mary-Kate Olsen
發布: 2024-10-28 12:52:02
原創
967 人瀏覽過

How to Extend Parent Selectors in SASS Mixins When Using the Ampersand (&) at the End of a Selector?

SASS 選擇器中的與號(&):擴展父範圍

在SASS 中,與號(&) 符號是一個強大的工具擴展父選擇器。它允許您以包含父選擇器自己的類別名稱的方式在 mixin 中嵌套規則。然而,在選擇器末尾使用&符號提出了一個獨特的挑戰。

問題在於確保選擇器包含呼叫者類別名稱。考慮以下 Sass mixin:

<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    .foreverAlone {
        ...
    }

    .iThink .illNeverWork&amp; {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
登入後複製

當在另一個 CSS 類別中呼叫此 mixin 時,產生的程式碼將不包含呼叫者的類別名稱。相反,它會產生:

<code class="css">.foreverAlone {
    ...
}

.iThink .illNeverWork.callerClass {
    color: #123ABC;
    ...
}</code>
登入後複製

要解決此問題,您可以利用以下技術:

Sass 版本3.2 及更早版本:

  • 使用多個選擇器:用逗號分隔每個選擇器,確保與號(&) 的使用一致。
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    .foreverAlone,
    .iThink &amp;.illNeverWork {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
登入後複製

Sass 版本3.3:

  • 連字符語法: 使用連字符語法來擴充父選擇器。
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    .iThink &amp;-illNeverWork {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
登入後複製

Sass 版本3.4:

  • 根規則: 定義一個變數來保存父選擇器並使用父親選擇器@at-root 規則來擴展它。
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    $parent: &amp;;
    @at-root .iThink#{&amp;} {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
登入後複製

透過實作這些技術,您可以有效地擴充 mixin 中的父選擇器,確保產生的程式碼包含呼叫者類別名稱。

以上是在選擇器末尾使用與號 (&) 時,如何在 SASS Mixins 中擴展父選擇器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!