2013-03-15 8 views
7

Ich habe den folgenden Stapel:WENIGER Variablen

  1. Symfony2
  2. Zweig mit lessphp Filter installiert.
  3. Twitter Bootstrap

In base.css ich habe:

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

Variablenname überhaupt nicht wichtig ist. Es kann jede andere Variable sein, die im Bootstrap verwendet wird. Es wird einfach nicht übergangen. Aber wenn ich die Variable in separate .Weniger Datei setzen und importieren Sie es in base.less alles wie erwartet funktioniert:

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

und

// variables.less 
@linkColor: 13px; 

Warum funktioniert das und der andere nicht? Nach Dokumenten gesucht (less/listphp), konnte aber nichts damit in Verbindung bringen. (oder ich wusste nicht, wo ich hinschauen sollte).

Kann jemand erklären, warum das passiert?

Antwort

2

Dies geschieht, weil Sie die Variable nach überschreiben, es wurde verwendet, um alle Bootstrap-Stile zu definieren.

ich dieses Problem lösen auf diese Weise:

  1. meine eigene main.less erstellen, die meine eigenen bootstrap.less importiert.
  2. Meine eigene bootstrap.less ist nur die Bootstrap bootstrap.less Datei in meinem eigenen Ordner mit importierten Pfaden entsprechend kopiert, aber mit einer Ausnahme: Es importiert von eigenen variables.less anstelle der Bootstrap's.
  3. Meine eigene variables.less importiert die Bootstrap variables.less und dann überschreibt diejenigen, die ich brauche.
+0

Danke Elnur! aber ich habe das Problem auch gelöst. Meine Frage ist, warum dies nicht geschieht, wie es zu beheben ist. Das weißt du schon! Ihre Lösung scheint zu kompliziert und nicht empfehlenswert. Es scheint, dass alle @imports in ihren eigenen Kontext und base.less verarbeitet werden, die sie in einen anderen Kontext importieren. Ansonsten kann ich das nicht erklären. – Viorel

+1

Sie haben meine Frage nicht beantwortet. Sie haben mir eine Alternative zur Verfügung gestellt, die ich nicht gesucht habe. Ich habe bereits die Lösung, um das Problem zu beheben. Trotzdem ist Ihre Lösung aus meiner Sicht nicht zu empfehlen. Wirklich ... glaube nicht, dass das der richtige Weg ist Bootstrap zu verlängern ... Nur weil du die einzige Person bist, die gepostet hat, bedeutet das nicht, dass ich deine Antwort akzeptiere, was in Wirklichkeit keine Antwort auf meine Frage ist. Wiederum fragte ich, ob jemand erklären könnte, warum die Überschreibung in dieser Situation nicht funktioniert und NICHT wie es funktioniert. Das weißt du schon! Zeitraum! Vielen Dank für Ihre Zeit! – Viorel

+0

Deshalb schrieb ich «oder stelle deine eigene Antwort und akzeptiere sie». ;) –

7

Es sieht aus wie es ein Fehler in der Lessphp Compiler ist. Werfen Sie einen Blick auf die github issue. Ihr Workaround, um die Variablendeklaration in eine andere Datei zu bringen und auch zu importieren, funktioniert einwandfrei. Danke übrigens;)

+0

Danke! Benutze es trotzdem. Zu buggy! Gone mit Nodejs Modul. – Viorel

+1

Danke, das funktioniert (https://github.com/ldbglobe/lessphp/compare/patch-1) – timaschew

+0

Das Problem scheint in v0.5.0 gelöst worden zu sein :) –

Verwandte Themen