J'utilise le thème des racines pour wordpress: https://github.com/retlehs/roots/
Il est déjà livré avec un bootstrap.css précompilé et recommande d'utiliser app.css pour toutes les personnalisations. Comme je n'ai pas les options pour ajouter les classes aux boutons via html ou javascript, je voudrais utiliser les sources LESS pour référencer une classe css, par exemple, je veux donner à un bouton d'envoi le bootstrap:
input#submit{
.btn;
.btn-primary;
}
Si j'utilise @import 'bootstrap.less';
il ajoute la totalité du bootstrap css dans app.css. Comment puis-je simplement utiliser le bootstrap.less comme référence pour la compilation?
La question centrale que vous posez est
"Comment puis-je simplement utiliser le fichier bootstrap.less comme référence pour la compilation?"
Pour LESS 1.5, il est désormais possible d'importer un fichier uniquement à titre de référence. Ainsi:
@import (reference) 'bootstrap.less';
Aucun code réel ne sortira de ce fichier en CSS, mais tout devient disponible pour être utilisé en tant que mixage.
[AVIS DE NON-RESPONSABILITÉ: il n'est pas certain que cela fonctionne à partir de la version 1.3.3, mais cette réponse originale, je crois, a également une certaine utilité dans les versions ultérieures. Cependant, pour vraiment obtenir ce que l'OP voulait, la nouvelle capacité de LESS 1.5 est recommandée.]
Les versions actuelles de LESS (1.3.3) peuvent s'adapter à cela grâce à l'utilisation d'un espace de noms. Ainsi:
#bootstrapRef() {
@import: 'bootstrap.less':
}
input#submit{
#bootstrapRef > .btn;
#bootstrapRef > .btn-primary;
}
En faisant de l'espace de noms un mixage (l'ajout des parenthèses après le nom), il importera toujours le fichier (je ne connais aucun moyen d'y accéder en externe sans importer), mais il ne devrait pas compiler le réel bootstrap dans la sortie finale de votre fichier css. Ce que cette technique doit faire est de vous permettre d'accéder aux classes de bootstrap, aux mixins, etc., via l'appel d'espace de noms #bootstrapRef >
, Ce qui permet d'utiliser ceux de vos propres classes définies, etc.
Je n'ai pas entièrement testé s'il y a des bugs, cela devrait fonctionner théoriquement.
Faire cela en MOINS est un peu délicat mais peut être réalisé comme suit:
#bootstrap() {
.btn() {
@import "bootstrap/variables.less";
@import "bootstrap/mixins.less";
@import "bootstrap/buttons.less";
}
}
input#submit{
#bootstrap > .btn;
}
ce qui entraîne la déclaration de certaines classes supplémentaires à partir de mixins.less et variables.less. Surtout juste .clearfix
puis tous les .btn
les classes sont ajoutées à input#submit
Voir la longue sortie ici:
Je ne sais pas s'il existe un outil pour importer uniquement les règles CSS de référence actuelles dans un fichier externe, mais Boostrap a une structure très organisée, alors vérifiez si les styles que vous recherchez sont sur mixins.less
, vous n'avez donc pas à importer l'intégralité de bootstrap.less
fichier.
Vérifiez également ceci question connexe , il existe de bonnes pratiques pour personnaliser Boostrap.
EDIT: Comme @PavloMykhalov le suggère, il vaut peut-être mieux regarder buttons.less
Remarque: Ce sera un outil génial pour ce genre de choses. Un jour je travaillerai dessus
Je ne sais pas ce qui vous a fait croire que LESS prend actuellement en charge le fait que, pour que cela soit possible, l'option doit être beaucoup plus explicite, il importe actuellement simplement, analyse, enregistre des morceaux, exécute des morceaux dans le texte de sortie.
À moins qu'il n'y ait rien d'explicite pour arrêter cette séquence, cela ne se fera pas différemment.
Je viens de consigner une demande de fonctionnalité sous MOINS, je ne sais pas avec certitude si cela a déjà été demandé auparavant, j'ai cherché et n'ai rien trouvé, j'espère que je ne serai pas giflé pour la répétition!
https://github.com/cloudhead/less.js/issues/1169
[~ # ~] mise à jour [~ # ~] Les problèmes se sont avérés être un doublon, le problème ouvert est ici: https: //github.com/cloudhead/less.js/issues/622