Ich möchte eine zentrale .scss-Datei behalten, in der alle SASS-Variablendefinitionen für ein Projekt gespeichert sind.
// _master.scss
$accent: #6D87A7;
$error: #811702;
$warning: #F9E055;
$valid: #038144;
// etc...
Das Projekt wird aufgrund seiner Natur eine große Anzahl von CSS-Dateien enthalten. Es ist wichtig, dass ich alle projektweiten Stilvariablen an einem Ort deklariere.
Gibt es eine Möglichkeit, dies in SCSS zu tun?
Antworten:
Sie können es so machen:
Ich habe einen Ordner mit dem Namen utilities und darin eine Datei mit dem Namen _variables.scss
In dieser Datei deklariere ich Variablen wie folgt:
dann habe ich die style.scss Datei, in die ich alle meine anderen scss Dateien wie folgt importiere:
Dann sollte ich in einer der von mir importierten Dateien auf die von mir deklarierten Variablen zugreifen können.
Stellen Sie einfach sicher, dass Sie die Variablendatei vor allen anderen importieren, in denen Sie sie verwenden möchten.
quelle
$black: #000 !default;
. Das!default
Ding verhindert, dass die Variable zurückgesetzt wird, wenn sie bereits vorhanden ist.Diese Antwort zeigt, wie ich dies genutzt habe und welche zusätzlichen Fallstricke ich hatte.
Ich habe eine Master-SCSS-Datei erstellt. Diese Datei muss am Anfang einen Unterstrich haben, damit sie importiert werden kann:
Dann importiere ich im Header aller meiner anderen .SCSS-Dateien den Master:
WICHTIG
Nehmen Sie nur Variablen, Funktionsdeklarationen und andere SASS-Funktionen in Ihre
_master.scss
Datei auf. Wenn Sie tatsächliches CSS einschließen, wird dieses CSS in jeder Datei dupliziert, in die Sie den Master importieren.quelle
Diese Frage wurde vor langer Zeit gestellt, daher dachte ich, ich würde eine aktualisierte Antwort veröffentlichen.
Sie sollten jetzt vermeiden, zu verwenden
@import
. Entnommen aus den Dokumenten:Eine vollständige Liste der Gründe finden Sie hier
Sie sollten jetzt
@use
wie folgt verwenden:_variables.scss
_otherFile.scss
Sie können auch einen Alias für den Namespace erstellen:
_otherFile.scss
quelle
Erstellen Sie eine index.scss und dort können Sie alle vorhandenen Dateistrukturen importieren. Ich werde Ihnen meinen Index aus einem Unternehmensprojekt einfügen, vielleicht hilft es anderen, wie man Dateien in CSS strukturiert:
Und Sie können sie mit Schluck / Grunzen / Webpack usw. ansehen, wie:
gulpfile.js
// SASS Aufgabe
quelle
Wie wäre es, wenn Sie eine farbbasierte Klasse in eine globale Sass-Datei schreiben, sodass wir uns nicht darum kümmern müssen, wo sich Variablen befinden. Genau wie folgt:
und dann können wir die
background-color
Klasse in jeder Datei verwenden. Mein Punkt ist, dass ichvariable.scss
keine Datei importieren muss, sondern nur verwenden muss.quelle