MOINS CSS: abuser de la & Opérateur lors de l'imbrication?
Moins utilise le &
Opérateur pour améliorer la possibilités de nidification.
.header { color: black;
.navigation { font-size: 12px;
&.class { text-decoration: none }
}
}
qui provoque une substitution de la &
avec le parent sélecteur et les résultats dans une concaténation de la réelle sélecteur de droit pour le parent sélecteur: .header .navigation.class
au lieu de la normale à la précédente, ce qui aurait pour résultat .class
être un decendant: .header .navigation .class
.
Maintenant, ce qui est également possible est la suivante (voir aussi ici):
.header { color: black;
.navigation { font-size: 12px;
#some-id & .foo { text-decoration: none }
}
}
dont le résultat suivant: #some-id .header .navigation .foo
essayer ici . La substition prend de la place et j'ai ajouté un sélecteur (#some-id
) à mes parents sélecteur.
Outre le fait que je n'aurais jamais le code de cette façon, car c'est probablement ce qui bousille votre feuille de style en un rien de temps, ma question:
Car cette fonction n'est pas documentée, est-il une fonction ou plus probablement d'un bug?
Qui sont les effets secondaires possibles?
- Ne pas comprendre vous, quel est le point de "#quelques id &"? Sûrement pas de code peut procude mal compilation des résultats de transformation et il est impossible de documenter tous les mauvais comportements.
- Êtes-vous expérimenté avec MOINS? Si non, il suffit de lire et de ne pas écrire s'il vous plaît...
- Assez connu, mais oublie cette syntaxe, Désolé. Peut-être que le codage comme ça, c'est utile pour modifier certains gros fichier css mais je pense que l'usage habituel de telles substitutions peut-être dangereux
- C'est un comportement intentionnel. La recherche par le biais de la less.js source pour
'&'
fait que ce soit clair. Les MOINS la documentation n'est pas fantastique, ce qui est la raison la plus probable pour cet être sans-papiers. Possible effets secondaires possibles: il peut être source de confusion pour l'utilisation&
au moyen d'un sélecteur. - Voici la documentation: lesscss.org/features/#parent-selectors-feature, bizarrement il ne mentionne ajoutant 🙂
Vous devez vous connecter pour publier un commentaire.
C'est pas un abus de la
&
combinateur à tous; vous pouvez la placer n'importe où imbriqués sélecteur et il va être remplacé par tout ce qui est au-dessus d'elle (sa soi-disant mère sélecteur):Remarquez qu'il dit "concaténés"; il ne dit pas que vous ne pouvez soit ajouter ou ajouter le parent sélecteur de la imbriquée sélecteur. Concaténation ne fonctionne pas dans n'importe quelle direction.
En outre, le mot "descendant" a à voir avec la nature de imbriqués les sélecteurs d'être traités comme s'ils étaient liés par le descendant du combinator par défaut. Ne doit en aucune façon que, intrinsèquement, de limiter l'utilisation de
&
aux descendants seulement, ni n'implique que le parent sélecteur doit représenter un parent ou un ancêtre de l'élément de telle manière que la imbriquée sélecteur peut uniquement être ajoutés, et non pas ajouté ou même inséré dans le milieu.