Sass .scss: Nidification et plusieurs classes?
J'utilise Sass (.scss) pour mon projet actuel.
Exemple suivant:
HTML
<div class="container desc">
<div class="hello">
Hello World
</div>
</div>
SCSS
.container {
background:red;
color:white;
.hello {
padding-left:50px;
}
}
Cela fonctionne très bien.
Puis-je gérer plusieurs classes lors de l'utilisation des styles imbriqués.
Dans l'exemple ci-dessus, je parle de ça:
CSS
.container.desc {
background:blue;
}
Dans ce cas, tous div.container
serait normalement red
mais div.container.desc
serait bleu.
Comment puis-je nid à l'intérieur de container
avec Sass?
- Vous devez utiliser un double sélecteur de classe. Ce problème en est un parfait exemple de l'imbrication de l'option dans le Sass. Vous pouvez lire tout sur que ici kolosek.com/nesting-in-less-and-sass
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le parent sélecteur de référence
&
, il sera remplacé par le parent sélecteur d'après la compilation:Pour votre exemple:
La
&
permettra de résoudre complètement, donc si votre parent sélecteur est imbriquée lui-même, l'imbrication sera résolu avant de remplacer la&
.Cette notation est le plus souvent utilisé pour écrire les pseudo-éléments et les classes:
Cependant, vous pouvez placer le
&
à pratiquement n'importe quelle position que vous aimez*, donc la suite est aussi possible:Cependant être conscient que ce en quelque sorte les pauses de votre structure imbriquée et peut donc augmenter l'effort de trouver une règle spécifique dans votre feuille de style.
*: N d'autres caractères que les espaces sont autorisés, en face de la
&
. Si vous ne pouvez pas faire directement une concaténation deselector
+&
-#id&
jeter une erreur.&
est lors de l'utilisation de pseudo-éléments et les pseudo-classes. Par exemple:&:hover
.&
est utilisé à la fin d'une ligne, il met cette ligne au début du reste de la classe à tous les autres niveaux. Vous pouvez combiner les éléments en faisant&.desc
sous.container
, ce qui permettrait d'ajouter .desc pour elle, ce qui.container.desc
::
est utilisé pour le pseude éléments.hover
cependant est de la pseudo-classe et donc seulement de répondre avec un seul colon.Si c'est le cas, je pense que vous devez utiliser une meilleure façon de créer un nom de classe ou un nom de classe de la convention. Par exemple, comme vous l'avez dit vous voulez le
.container
classe pour avoir une couleur différente, selon un usage particulier ou à l'apparence. Vous pouvez faire ceci:SCSS
CSS