Pouvez-vous importer des fichiers .css dans des fichiers .less ...?
Je connais bien moins et l'utilise pour tout mon développement. J'utilise régulièrement une structure comme suit:
@import "normalize";
//styles here
@import "mixins";
@import "media-queries";
@import "print";
Toutes les importations sont d'autres fichiers .less et fonctionnent comme il se doit.
Mon problème actuel est le suivant: je souhaite importer un fichier .css dans .less qui fait référence aux styles utilisés dans le fichier .css comme suit:
@import "../style.css";
.small {
font-size:60%;
.type;
}
// other styles here
Le fichier .css contient une classe appelée .type
mais lorsque j'essaie de compiler le fichier .less, j'obtiens l'erreurNameError: .type is undefined
Le fichier .less n'importera-t-il pas les fichiers .css, seulement d'autres .less ...? Ou suis-je mal référencé ...?!
.less
extension. Référencez-le ensuite sous forme de.less
fichier. Étant un lien symbolique, il soulage la charge de les synchroniser car vos modifications .css affectent immédiatement le fichier .less en cours d'importation. L'inconvénient est que vous devez recompiler le CSS final après les modifications ultérieures. Pour plus d'informations sur la création de liens symboliques dans Windows, tapezMKLINK /?
dans une fenêtre de commande.css
fichier à l'aide de la(less)
directive inline et profiter du fait que la.css
syntaxe est une.less
syntaxe valideRéponses:
Vous pouvez forcer un fichier à être interprété comme un type particulier en spécifiant une option, par exemple:
affichera
et
va importer le
lib.css
fichier et le traiter comme moins. Si vous spécifiez qu'un fichier est inférieur et n'incluez pas d'extension, aucun ne sera ajouté.la source
(inline)
directive (voir stackoverflow.com/a/22594082/160968 ) est maintenant préférable(inline)
ne fonctionnera pas car il ne transforme pas les références externes en polices ou autres@import
fichiers css ed. Vous venez de vous retrouver avec un fichier css plus volumineux qui provoque beaucoup de requêtes HTTP 404 ....Si vous souhaitez que votre CSS soit copié dans la sortie sans être traité, vous pouvez utiliser la
(inline)
directive . par exemple,la source
@import (css) "styles.css";
n'a pas fonctionné pour moi.(css)
, la@import
directive restera telle quelle et, par conséquent, le fichier CSS sera chargé par le navigateur lors de l'exécution; avec(inline)
, le contenu du fichier CSS est réellement importé dans la feuille de style compilée, ce que vous voulez si ce fichier est hors de votre racine web par exemple. Notez que le comportement par défaut lors de l'@import
ingénierie d'un.css
fichier est le même qu'avec le(css)
drapeau - lisez la documentation pour plus d'informations :)@import
directives car cela nécessiterait un "traitement".J'ai dû utiliser ce qui suit avec la version 1.7.4
Je sais que la réponse acceptée est
@import (css) "foo.css"
mais cela n'a pas fonctionné. Si vous souhaitez réutiliser votre classe css dans votre nouveau fichier less, vous devez utiliser(less)
et non(css)
.Consultez la documentation .
la source
(less)
c'est la seule option si vous voulez réutiliser certains styles d'un fichier css) mais pour une raison quelconque, @Fractalf a supprimé la bonne partie avec sa dernière édition.@import (less, reference) "foo.css"
Modifiez l'extension de votre fichier css en.less
. Vous n'avez pas besoin d'y écrire MOINS; tous les CSS sont valides MOINS (à l'exception des éléments MS auxquels vous devez vous échapper, mais c'est un autre problème.)Selon la réponse de Fractalf, cela est corrigé dans la v1.4.0
la source
Depuis le site Web de LESS :
Comme jitbit le fait remarquer dans les commentaires ci-dessous, cela n'est vraiment utile qu'à des fins de développement, car vous ne voudriez pas que la
@import
consommation de bande passante précieuse soit inutile .la source
@import
pendant le développement, puis combine et réduit les fichiers importés dans une seule feuille de style lors du passage en production.Essaye ça :
De la documentation officielle:
Source: http://lesscss.org/
la source
Si vous voulez juste importer un fichier CSS comme référence (par exemple pour utiliser les classes dans Mixins) mais ne pas inclure tout le fichier CSS dans le résultat, vous pouvez utiliser
@import (less,reference) "reference.css";
:my.less
reference.css
* Résultat (my.css) avec
lessc my.less out/my.css
*j'utilise
lessc 2.5.3
la source
&:extend(.reference-class all);
. Le référencement direct de la classe a entraîné une erreur de compilation.Si vous souhaitez importer un fichier css qui devrait être traité comme moins, utilisez cette ligne:
la source
depuis la version 1.5.0, vous pouvez utiliser le mot-clé 'inline'.
Exemple: @import (inline) "not-less-compatible.css";
Vous l'utiliserez lorsqu'un fichier CSS peut ne pas être moins compatible; En effet, même si Less prend en charge la plupart des normes CSS connues, il ne prend pas en charge les commentaires à certains endroits et ne prend pas en charge tous les hacks CSS connus sans modifier le CSS. Vous pouvez donc l'utiliser pour inclure le fichier dans la sortie afin que tous les CSS soient dans un seul fichier.
(source: http://lesscss.org/features/#import-directives-feature )
la source