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:
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.
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:
UPD Endlich Fehlertext!
Sie verpassen den Punkt im Namen der Klasse. aside {@extend ruddy;}
sollte aside {@extend .ruddy;}
sein.
Tags und Links css sass oocss css-preprocessor