2013-03-15 6 views
7

je l'empilement suivant:Remplacer variables moins

  1. Symfony2
  2. Twig avec filtre lessphp installé.
  3. Twitter Boostrap

En base.css j'ai:

// base.less 
@import '/path/to/bootstrap.less' 
@linkColor: 13px; 

Nom de la variable est pas du tout important. Cela peut être n'importe quelle autre variable utilisée dans bootstrap. Il ne suffit pas d'être surchargé. Mais si je mets la variable dans le fichier .Moins séparé et l'importer dans tout ce base.less fonctionne comme prévu:

// base.less 
@import '/path/to/bootstrap.less' 
@import '/path/to/variables.less' 

et

// variables.less 
@linkColor: 13px; 

Pourquoi ce travail et l'autre non? J'ai cherché les docs (less/lessphp) mais je n'ai rien trouvé de similaire. (ou je ne savais pas où chercher). Est-ce que quelqu'un peut expliquer pourquoi cela se passe-t-il?

Répondre

2

Cela se produit parce que vous remplacez la variable après il a été utilisé pour définir tous les styles Bootstrap.

-je résoudre ce problème de cette façon:

  1. Créer ma propre main.less qui importe ma propre bootstrap.less.
  2. Mon propre bootstrap.less est juste le fichier bootstrap.less de Bootstrap copié dans mon propre dossier avec les chemins d'importation modifiés en conséquence, mais à une exception près: il importe par son propre variables.less au lieu de celui de Bootstrap.
  3. Mon propre variables.less importe le variables.less du Bootstrap, puis remplace ceux dont j'ai besoin.
+0

Merci Elnur! mais j'ai résolu le problème aussi. Ma question est pourquoi cela n'arrive pas comment le réparer. Je le sais déjà! Votre solution semble trop compliquée et non recommandée. Il semble que tous les @imports sont traités dans leur propre contexte et base.less qui les importent dans un contexte différent. Sinon, je ne peux pas l'expliquer. – Viorel

+1

Vous n'avez pas répondu à ma question. Vous avez fourni une alternative qui n'est pas ce que je cherchais. J'ai déjà la solution pour résoudre le problème. Même ainsi, votre solution n'est pas recommandée de mon point de vue. Vraiment ... ne pense pas que c'est la bonne façon d'étendre bootstrap ... Juste parce que vous êtes la seule personne qui a posté ne signifie pas que j'accepterai votre réponse qui en fait n'est pas une réponse à ma question. Encore une fois, j'ai demandé si quelqu'un pouvait expliquer pourquoi la dérogation ne fonctionne pas dans cette situation et pas comment le faire fonctionner. Je le sais déjà! Période! Merci pour votre temps! – Viorel

+0

C'est pourquoi j'ai écrit «ou fournissez votre propre réponse et acceptez-le». ;) –

7

Il semblerait que ce soit un bogue dans le compilateur lessphp. Jetez un oeil à la github issue. Votre solution de contournement, de mettre la déclaration de variable dans un autre fichier et également importer cela fonctionne très bien. Merci à propos;)

+0

Merci! Arrête de l'utiliser quand même. Trop buggy! Parti avec le module nodejs. – Viorel

+1

Merci, cela fonctionne (https://github.com/ldbglobe/lessphp/compare/patch-1) – timaschew

+0

Le problème semble avoir été résolu en v0.5.0 :) –