Wie man @ aus einer anderen Sass-Datei herauszieht oder wie man OOSASS erreicht? [Duplikat]

9

Meine Frage ist eigentlich breiter als der Titel sagt. Genau hier stolpere ich mit meiner Idee, aber ich bin offen für alle möglichen Lösungen. Lassen Sie mich mein Gesamtziel erklären.

Ich mag, was CSS-Präprozessoren können. Ich mag die Ideen von OOCSS und SMACSS. Ich bin neu in all dem. Ich versuche, meine Designmethoden zu verbessern, um irgendwie die beste aller Welten zu integrieren. Ich habe eine theoretische Methode, die so funktioniert:

  • verwende nur semantische Klassennamen oder IDs oder was auch immer
  • definiert Module oder Muster in einem gemeinsamen Stylesheet
  • haben pro Seite Stylesheets, die Module aus dem allgemeinen Stylesheet auf die semantischen Selektoren einer bestimmten Seite
  • erweitern

Also das:

%Vor%

plus das:

%Vor%

wird dies:

%Vor%

Ich habe nicht unbedingt gesehen, dass jemand anderes das macht, aber es schien mir eine gute Idee zu sein. Das Problem, auf das ich in meinem großen Schema stoße, ist, dass @extend anscheinend nicht von einer importierten Datei funktioniert. Jemand anderswo auf SO hat gesagt, dass es nicht möglich ist. Ist das wahr? Ich habe Mixins zu arbeiten, aber das Problem mit ihnen ist, dass sie jedes Attribut in der Ausgabe CSS, die nicht ideal erscheint duplizieren.

Ich bin tatsächlich weniger an LESS (Syntax) interessiert, aber das hat im Moment noch nicht einmal eine Erweiterung. Sollte ich mir über die Ineffizienzen von Mixins keine Sorgen machen oder gibt es einen Weg, um das zu erreichen, wonach ich suche?

Hinweis: Ich kompiliere meinen Sass automatisch mit einem Tool namens Prepros. Wenn ich versuche, Code wie den obigen zu kompilieren, bekomme ich einen Fehler wie.

  

WARNUNG in Zeile 11 von ... \ sass \ home.scss: "#intro" konnte @ "rot" nicht erweitern.     Der Selektor "ruddy" wurde nicht gefunden.

Wenn ich den Code von module.scss einfach in homepage.scss kopiere, geht das Problem weg.

    
Moss 14.06.2013, 23:50
quelle

2 Antworten

5

Das Problem ist hier:

%Vor%

ruddy und fullwidth sind keine Selektoren. Wenn Sie die Klasse .ruddy erweitern, müssen Sie die Periode einfügen, da diese Teil des Selektors ist.

%Vor%     
cimmanon 15.06.2013, 03:02
quelle
8

Es ist nicht wahr.

Sie können Klassen (einschließlich der % -fixierten ) in einer Datei deklarieren Importieren Sie die erste Datei in die zweite Datei und erweitern Sie die Klassen in der zweiten Datei.

Beispiel:

foo.sass

%Vor%

bar.sass

%Vor%

Führen Sie sass bar.sass bar.css aus.

bar.css wird angezeigt

%Vor%

PS Für echte SASS-Erfahrung sollten Sie den Kompass nutzen. Kompass ist eine Menge Dinge unter einem Namen:

  • ein praktisches Werkzeug, um SASS effizient zu kompilieren;
  • eine riesige Bibliothek von handlichen SASS-Stilen für alle Gelegenheiten;
  • ein Ökosystem von Erweiterungen, die Sie problemlos in Ihren Projekten installieren und verwenden können. Das zeichnet SASS aus. Sie müssen das Rad nicht immer wieder neu erfinden.

UPD Endlich Fehlertext!

Sie verpassen den Punkt im Namen der Klasse. aside {@extend ruddy;} sollte aside {@extend .ruddy;} sein.

    
quelle

Tags und Links