2016-07-01 18 views
0

Ich habe main.scss Datei (im Rahmen von CSS Paged Medien)Überschreiben globaler Variablen in einem importierten Modul nur lokal?

$margin-left 2cm; 

@page { 
    size: a4; 
    margin-left: $margin-left; 
} 

@import "_toc"; 

.... 

und _toc.scss enthält

$margin-left 4cm; 

@page toc { 
    margin-left: $margin-left; 
} 

Der Standard margin-left für alle Seiten mit dem Inhalt 2cm sein sollte, aber auf einer bestimmten Seite (Inhaltsverzeichnis) brauche ich 4 cm

Die Neuzuweisung von $ margin-left in _toc.scss ändert den Wert der globalen Variable.

Gibt es einen Mechanismus zum lokalen Überschreiben globaler Variablen (nur innerhalb der _toc.scss-Datei), außer dass eine dedizierte Variable verwendet wird, die für _toc.scss spezifisch ist?

+0

Vermissen Sie einige Doppelpunkte nach den Var-Namen? '$ margin-left: 2cm' – davidpauljunior

+0

.. spielt keine Rolle und steht in keinem Zusammenhang mit der Frage. –

Antwort

0

Warum nicht den gleichen Wert der Variablen verwenden und ihn wie margin-left: $margin-left + 2; nennen, was das gleiche Ergebnis liefert, ohne den Wert der Variablen zu ändern. Und wenn Sie noch den Wert ändern möchten, können Sie neue Wert innerhalb des @page toc definieren, die nicht global Wert ändern

+0

Keine Option, da der spezialisierte Wert nicht auf einer Berechnung basiert. –

0

Versuchen Sie, die übergeordnete Variable in dem Auswahlblock platzieren:

@page toc { 
    $margin-left: 4cm; 
    margin-left: $margin-left; 
} 

Demo: http://www.sassmeister.com/gist/456110c2fa766d4250ecbb9d840cf38f

+0

Möglicherweise eine Option, aber unwahrscheinlich, eine gute Lösung. Aus Gründen der Lesbarkeit: var decls sollte an der Spitze einer Datei und nicht irgendwo innerhalb der Vorlage platziert werden ... so macht Ihr Rat nicht viel Sinn. –

+0

Scheint logisch zu sein, Variablen innerhalb des Bereichs zu definieren, in dem sie verwendet werden. Wie in JavaScript. – davidpauljunior

+0

Wie gesagt: aus Lesbarkeitsgründen keine Option. Sie möchten, dass Variable im Voraus definiert wird und nicht irgendwo ... –

Verwandte Themen