Maison > interface Web > tutoriel CSS > le corps du texte

Comment étendre les sélecteurs parents dans les mixins SASS lors de l'utilisation de l'esperluette (&) à la fin d'un sélecteur ?

Mary-Kate Olsen
Libérer: 2024-10-28 12:52:02
original
967 Les gens l'ont consulté

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

Esperluette (&) dans les sélecteurs SASS : extension de la portée des parents

Dans SASS, l'esperluette (&) est un outil puissant pour extension des sélecteurs parents. Il vous permet d'imbriquer des règles dans un mixin de manière à inclure le nom de classe du sélecteur parent. Cependant, utiliser l'esperluette à la fin d'un sélecteur présente un défi unique.

Le problème réside dans la garantie que le sélecteur inclut le nom de la classe appelante. Considérez le mixin Sass suivant :

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

    .iThink .illNeverWork&amp; {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
Copier après la connexion

Lorsque ce mixin est appelé dans une autre classe CSS, le code généré n'inclura pas le nom de la classe de l'appelant. Au lieu de cela, il produira :

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

.iThink .illNeverWork.callerClass {
    color: #123ABC;
    ...
}</code>
Copier après la connexion

Pour surmonter ce problème, vous pouvez utiliser les techniques suivantes :

Sass versions 3.2 et antérieures :

  • Utilisation de plusieurs sélecteurs : Séparez chaque sélecteur par des virgules, en vous assurant que l'esperluette (&) est utilisée de manière cohérente.
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    .foreverAlone,
    .iThink &amp;.illNeverWork {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
Copier après la connexion

Sass version 3.3 :

  • Syntaxe avec trait d'union : Utilisez la syntaxe avec trait d'union pour étendre le sélecteur parent.
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    .iThink &amp;-illNeverWork {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
Copier après la connexion

Sass version 3.4 :

  • Règles at-root : Définissez une variable pour contenir le sélecteur parent et utilisez la règle @at-root pour l'étendre.
<code class="sass">@mixin button-variant($color, $background, $border) {
    ...
    $parent: &amp;;
    @at-root .iThink#{&amp;} {
        color: $pinkUnicornRainbow;
        ...
    }
}</code>
Copier après la connexion

En implémentant ces techniques, vous pouvez étendre efficacement les sélecteurs parents au sein d'un mixin, en garantissant que le code généré inclut le nom de la classe appelante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!