Maison > interface Web > tutoriel CSS > Comment pouvez-vous étendre les sélecteurs dans les requêtes multimédias dans Sass ?

Comment pouvez-vous étendre les sélecteurs dans les requêtes multimédias dans Sass ?

Barbara Streisand
Libérer: 2024-11-02 03:42:30
original
941 Les gens l'ont consulté

How Can You Extend Selectors Within Media Queries in Sass?

Extension des sélecteurs à l'aide de requêtes multimédias dans Sass

Lorsque vous travaillez avec Sass, vous avez souvent besoin d'étendre les sélecteurs à partir des requêtes multimédias. Cela peut être utile pour appliquer différents styles aux éléments en fonction de leur taille ou de leur orientation. Cependant, Sass a une limitation selon laquelle vous ne pouvez pas étendre un sélecteur externe à partir d'une requête multimédia.

Dans l'exemple de code fourni :

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

@media (max-width: 600px) {
  .item { @extend .item.compact; }
}</code>
Copier après la connexion

Cette approche entraîne une erreur car Sass ne peut pas composer le sélecteur pour vous. Plus précisément, vous ne pouvez pas être à l'intérieur d'une requête média et étendre quelque chose qui en est à l'extérieur.

Approches alternatives

En raison de cette limitation, vous disposez de plusieurs alternatives :

Utiliser les mixins

Créer un mixin et une classe d'extension pour réutiliser le code à l'intérieur et à l'extérieur des requêtes média :

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

%foo {
    @include foo;
}

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

@media (min-width: 30em) {
    .bar {
        @include foo;
    }
}</code>
Copier après la connexion

Extension du sélecteur depuis l'extérieur

Bien qu'elle ne soit pas directement applicable au cas d'utilisation donné, cette méthode vous permet pour étendre un sélecteur au sein d'une requête média depuis l'extérieur :

<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>
Copier après la connexion

En cours Discussions

Il y a des discussions actives concernant cette limitation dans la communauté Sass. Les utilisateurs ont exprimé leur désir de bénéficier de cette fonctionnalité et les responsables réfléchissent aux moyens de la mettre en œuvre efficacement. Cependant, aucune solution définitive n’a encore été trouvée.

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