David hat kürzlich seinen Blog neu gestaltet und eine Reihe von Gastbeiträgen für seine Website veröffentlicht. Wir haben uns für einen Crossover-Stil entschieden: Er schreibt einen Artikel für CSS-Tricks und ich schreibe einen Artikel für den David Walsh Blog. Er hat Sass in seinem Redesign verwendet und sein Artikel unten handelt von dieser Erfahrung. Ich benutze es schon fast ein Jahr, also ist mein Beitrag auf seiner Seite über diese Erfahrung.
Eine Website zu erstellen, ohne einen CSS-Präzessor zu verwenden, scheint eine schreckliche Entscheidung zu sein. Selbst wenn es nur darum geht, ein paar Farben oder Elementabmessungen schnell zu ändern, oder sogar nur CSS-Dateien einfach zusammenzuführen und zu komprimieren, werden CSS-Präzessoren immer wichtiger. Für die kürzliche Neugestaltung des David Walsh Blogs entschied ich, dass jetzt der richtige Zeitpunkt war, mich kopfüber in CSS-Präzessoren zu stürzen. Hier sind ein paar Gedanken zu meiner Erfahrung, und hoffentlich lernen Sie dabei ein paar Tipps.
Die Entscheidung, „sassy“ zu sein
Es gibt nicht viel zu entscheiden, ob man ein Werkzeug wie Sass oder LESS verwenden möchte oder nicht, die Frage ist eher, welches verwendet werden sollte. Am Ende habe ich mich für Sass entschieden, weil
- meine Erfahrungen mit LESS … weniger als ansprechend waren; das Werkzeug scheint … weniger gepflegt zu sein
- ein Dienstprogramm wie Compass, eine Sammlung von Mixins mit einem Updater, ist unschätzbar wertvoll
- die
extend()API großartig aussah - das Einbetten von Media-Query-Stilen innerhalb eines Selektors die Organisation verbessert
- die Sprite-Generierung ein enormer Zeitsparer ist
- Chris Coyier es mir gesagt hat!
Wenn Sie einen Blog wie den David Walsh Blog oder CSS-Tricks verwalten, bietet das Erlernen eines neuen CSS-Dienstprogramms auch die perfekte Gelegenheit, über ein weiteres nützliches Thema zu schreiben. Die Verwendung von Sass für dieses Projekt war offensichtlich die beste Wahl.
Nützliche Snippets
Hier sind ein paar der Sass-Snippets, die ich oft auf meiner Website verwendet habe
Hersteller-Präfixe
@mixin vendorize($property, $value) {
-webkit-#{$property}: $value;
-moz-#{$property}: $value;
-ms-#{$property}: $value;
-o-#{$property}: $value;
#{$property}: $value;
}
Float Clearing
@mixin clear() {
&:before, &:after {
content: "\0020";
display: block;
height: 0;
overflow: hidden;
}
&:after {
clear: both;
}
}
Offscreen Text
@mixin linkTextOffscreen() {
text-indent: -9999px;
overflow: hidden;
text-decoration: none;
display: block;
font-size: 0;
text-align: start;
}
:hover, :active, :focus Styles
@mixin hoverActiveFocus($property, $value) {
&:hover, &:active, &:focus {
#{$property}: $value;
}
}
Ich habe diese Mixins in meinem Code recht häufig verwendet. Einige meiner Snippets ahmen die von Compass bereitgestellte Funktionalität nach, aber ich mag es, die spezifischen Stile zu sehen, die von Mixins bereitgestellt werden.
Fehler, Fehler
Wie bei jedem Werkzeug, das man zum ersten Mal benutzt, habe ich einige Fehler gemacht. Fehler sind aber gesund – man lernt daraus und schreibt darüber, damit andere nicht die gleichen Fehltritte machen. Zu den Fehlern, die ich gemacht habe, gehören
- Verschachtelung == Blähung: Der größte Fehler, den ich mit Sass gemacht habe, war bei weitem das Verschachteln von Stilen, wenn es nicht nötig war. Zum Zeitpunkt der Veröffentlichung war meine Haupt-CSS-Datei ein zum Erbrechen verdauende 59 KB! Ich arbeite immer noch daran, die Größe meiner Stile zu reduzieren, und das ist eine viel schwierigere Aufgabe, da die Website bereits gestartet ist, wegen…
- …Kollisionen der Spezifität: Aufgrund meines Problems mit dem Verschachteln von Stilen, wenn es nicht nötig war, stieß ich auf eine Reihe von Spezifitätskonflikten, die meine CSS-Datei noch weiter aufblähten. Als es um die CSS für Media Queries der Bildschirmgröße ging, musste ich alles als !important markieren. Das ist eine unglaubliche Menge an CSS-Blähungen und Aufwand aufgrund der unsachgemäßen Verwendung der Sass-Selektor-Verschachtelung.
- Sprite-Generierung… zu spät: Einer der Hauptgründe, warum ich mich für SASS entschieden habe, war, dass ich wusste, dass SASS die Sprite-Generierung verwaltet. Was für ein Zeitsparer, oder? Nun, nur solange man wusste, wie man sie überhaupt formatiert. Mein Problem war, dass ich mein CSS mit normalen background-image-Deklarationen erstellt habe, ohne auf das gewünschte Format von SASS zu achten. Ich ging dazu über, meine Sprites zu erstellen, nachdem ich das richtige Format kannte, und sagte: „WTF FML“. Am Ende habe ich meine eigenen Sprites erstellt, weil ich mein SASS von Anfang an nicht richtig geschrieben habe. Ein sehr ärgerlicher Fehler.
- Duplizieren von Compass-bereitgestellten Helfern: Ich muss sie nicht zitieren… Ich bin mir mehr als sicher, dass ich die von Compass bereitgestellte Funktionalität dupliziert habe. Ich werde wahrscheinlich später dafür bezahlen, wenn ich meinen Code nicht aktualisiere und mir der Browserfähigkeiten bewusst bleibe.
Tipps und letzte Eindrücke
Ich möchte jedem ein paar Tipps für den Einstieg in SASS mit auf den Weg geben und ein paar letzte Eindrücke zur Sass-Entwicklung teilen
- Trotz meiner Duplizierung von Sass-bereitgestellter Funktionalität und Verschachtelungsproblemen ist Sass ein unglaubliches Werkzeug, das in Verbindung mit Compass die ultimative verfügbare Tool+Update-Umgebung bietet.
- Wenn Sie Selektoren verschachteln, fragen Sie sich, ob dies wirklich notwendig ist. Sicher, Verschachtelung ermöglicht auch eine bessere Codeorganisation, aber eine aufgeblähte Stylesheet lässt alle Ihre Benutzer leiden.
- Erstellen Sie Variablen für Ihre CSS-Animations-Eigenschaften, insbesondere Dauer und Verzögerung. Eine konsistente Animationstaktung sorgt für optisch ansprechende UI-Effekte.
- Erstellen Sie Variablen für Block-Padding und verwenden Sie einfache Gleichungen ($blockPadding/2) für kleinere Blöcke. Dies gewährleistet eine konsistente Elementabstands.
- Sie können Media Queries für Selektoren verschachteln, aber ich bevorzuge die Erstellung einer separaten Datei für mobile / Media-Query-spezifische Stile; dies ermöglicht es mir, den gesamten Satz von mobilen Stilen auf einen Blick zu sehen. Das Gleiche gilt für meine Druckstile.
- Ich habe diese Anleitungen verwendet, um Sass-Syntax-Highlighting zu Sublime Text 2 hinzuzufügen.
- Behalten Sie die Größe Ihrer CSS-Dateien während der Codierung im Auge und überprüfen Sie regelmäßig Ihre Verschachtelungsstrategie, um Style-Blähungen zu vermeiden.
- Nutzen Sie CSS-Animationen bestmöglich – sie können Ihnen auf lange Sicht viel JavaScript-Code ersparen.
Letztendlich bin ich mit meiner Entscheidung, Sass als meinen CSS-Präprozessor zu verwenden, unglaublich zufrieden. Die Dokumentation ist hilfreich, Sie können in wenigen Minuten loslegen, und Compass ist in vielerlei Hinsicht ein unschätzbares Werkzeug. Meine einzigen Probleme mit Sass waren selbst verschuldet und werden beim nächsten Mal leicht vermeidbar sein. Geben Sie Sass eine Chance für Ihre nächste Website oder Neugestaltung – sein Nutzen ist unermesslich und wird sich für die Dauer Ihres Projekts auszahlen.
Ich benutze Sublime Text 2 als meinen Editor und finde dieses Plugin großartig: http://wbond.net/sublime_packages/prefixr
Es erspart Ihnen das Präfixen von Dingen, die Sie nicht präfixen müssen, es könnte zusätzlichen Ballast reduzieren.
Chris spricht über die Verwendung von Compass zum Hinzufügen von Präfixen – ist Prefixr besser, aktueller? D.h. gibt es einen Grund, den Prefixr-Weg zu gehen, als Compass, das bereits mit SASS installiert ist?
Prefixr hat sich für mich als nützlich erwiesen, aber ja, wenn Sie nur einen Präprozessor wie SASS oder LESS verwenden, können Sie ein paar Mixins erstellen; Prefixr ist nicht unbedingt erforderlich, es sei denn, Sie entscheiden sich, diese nicht zu verwenden. Sie müssen die Mixins nicht einmal neu schreiben (die Freude am Kopieren und Einfügen).
Prefixr ist großartig, aber wenn Sie in einer .scss-Datei arbeiten, können Sie mit
vs
Das eine hat weitaus größere Vorteile in Bezug auf Sauberkeit als das andere.
Tolle Sache. Eine Herausforderung, vor der ich immer noch stehe, ist die Zusammenarbeit mit einem Team / Kunden, die den CSS danach auch pflegen müssen. Ich hatte noch keine Gelegenheit, ein Projekt zu einer 100% SASS-Lösung zu verpflichten.
Toller Beitrag!
Meine ursprüngliche Besessenheit mit der Verschachtelung hat meinen CSS definitiv aufgebläht… ich wünschte, ich hätte diese Warnungen lesen können, bevor ich „sassy“ wurde.
Anstelle Ihrer Version von Vendorize benutze ich
was den Vorteil hat, dass Sie es so verwenden können
auch (man könnte sogar mehrere Eigenschaften so verwenden
Ausgezeichnet, Peter! Das werde ich… „leihen“! :D
Compass hat eine integrierte Funktion, um unerwünschte Präfixe zu vermeiden. Sie müssen also keine eigenen benutzerdefinierten Mixins schreiben ;)
http://compass-style.org/help/tutorials/exclude_vendor_prefixes/
Ein wenig verbesserte Version
Das allgemeine Redesign ist nett. Ich habe trotzdem ein Problem damit. Wenn ich auf den Pfeil nach unten drücke, um zu scrollen, scrollt er nach dem Loslassen wieder nach oben zum nächsten Blogbeitrag. Schlecht für die UX meiner Meinung nach!
Wäre es sinnvoller, @extends für Float Clearing und Text-Unsichtbarkeit zu verwenden?
David… Habe mir deinen neuen Blog angesehen und Chris' Artikel gelesen, dann versucht, einen Kommentar zu hinterlassen – und dein Link funktioniert nicht. Habe versucht, einen Bug-Report zu hinterlassen – aber ich werde mich nicht bei Git registrieren, nur um dir einen Bug zu melden, den du vielleicht irgendwann herausfindest. Also, vielleicht siehst du diese Kommentare.
Wie das neue Skin deiner Website – eine Sache, die mir aufgefallen ist. Wenn man sie in schmaler Größe (d.h. mobil) betrachtet, zeigt dieser Beitrag (insbesondere Chris') über eine ziemlich lange Scrollstrecke nur den Titel. ?Vielleicht ein Media-Query, um die Schriftgröße der Überschriften zu verringern, würde gut aussehen? Nur ein Gedanke.
Mit dem
hoverActiveFocusMixin erhalten Sie viel Code-Blähung, wenn Sie mehrere Regeln benötigen, da SASS äquivalente Selektoren noch nicht gruppiert. Stattdessen versuchen Sie einfach, die Regelanweisung durch eine@content-Anweisung zu ersetzen. Mehr erfahren@DavidWalsh anstelle des von Ihnen verwendeten Mixins linkTextOffscreen() schauen Sie sich diese aktualisierte Version der Bildersetzung an.
Ich bin darauf gestoßen, als ich Bones (ein WordPress HTML5 Starter Theme) verwendet habe, ebenfalls sehr empfehlenswert.
Schauen Sie sich den letzten Kommentar zum Artikel aktualisierte Version der Bildersetzung an, den Sie gepostet haben, und Sie werden genau sehen, warum Sie diese nicht als Workaround für die -9999px-Lösung verwenden sollten.
Hmmm. Dieser Kaiser hat zwar Kleider, aber sie sind ziemlich schäbige Gewänder in Bezug auf die Integration
Zum Beispiel:
(1) Das nützlichste Debugging-Feature der Welt, Firebug, weiß nichts über SCSS-Dateinummern (… ich weiß … es gibt einige klobige Plugins, die ein wenig helfen etc. etc.), was das Debuggen von CSS mit Firebug praktisch nutzlos macht
(2) fast alle der besten IDEs des Universums haben ziemlich gute Farbkodierung und Autovervollständigung für CSS, wissen aber scheinbar nichts über SCSS oder LESS (sicher … frühe Tage … Plugins kommen blah blah)
(3) Präprozessoren für CSS, hmm. vielleicht als nächstes JavaScript-Präkompiler, was für ein Durcheinander.
Vielleicht war es immer so – Standards entwickeln sich zu langsam, provisorische Workarounds, bessere Standards, Wiederholung… ach ja.
Das stimmt, das war auch mein Hauptgrund, CSS-Präprozessoren zu verwenden. Es hat mich am Anfang fast abgeschreckt, aber nach einer Weile ist es nicht mehr so schlimm. Ich formatiere das kompilierte CSS und füge es beim Debuggen in den Browser ein. Von dort aus ist es einfach(er), die entsprechende Zeile in meinem LESS/SASS zu finden.
Nicht ganz wahr! WebStorm hat ziemlich gute Unterstützung und es kommt noch mehr. Kombinieren Sie das mit CodeKit und Sie haben ein ziemlich gutes Setup!
Hoffentlich werden Source Maps auch in CSS integriert (wir haben sie in JS – die minimierte/obfuskierte Datei mit der Quelle verknüpfen), dann werden all diese Probleme verschwinden.
1.) Firesass
2.) ST2 mit SCSS-Plugin (dauert 10 Sekunden zur Installation)
Wenn Sie zu faul sind, das zu tun, dann werden Sie es mit Sass schwer haben… andernfalls wird es Ihr Leben enorm erleichtern (natürlich liegt es am Ende an Ihnen, aber verstärken Sie zumindest nicht einfach Klischees)
Lol, normales CSS ist einfach einfacher, ordentlicher, kein Bedarf, Ihre Stylesheets aufzublähen. Lächerlich, Sass oder Less zu lernen, es sei denn, Sie sind im Geschäft und coden Vollzeit-Websites. Lächerlich
@nick – warum sonst sollten Sie CSS verwenden, es sei denn, Sie bauen Websites Vollzeit? Als Hobby? Ja, dann ist ein Präprozessor vielleicht ein wenig übertrieben. Die meisten Leute hier diskutieren über Dinge, die kein Hobby sind.
viele von uns, die es Vollzeit machen, kümmern sich auch nicht darum.
Der lustige Teil ist, dass Leute es benutzen, um ein paar Kilobyte von ihrer CSS-Datei abzuschneiden… völliger Wahnsinn.
Aus Wartungssicht ist die Verschachtelung von Media Queries ein Killer-Feature. Könnten Sie nicht Sass die Abfragen in eine separate Datei kompilieren lassen? Scheint eine perfekte Übereinstimmung für einen Präprozessor zu sein.
@David – Gibt es einen bestimmten Grund, warum Sie die „Korrektur“ für Offscreen-Text aus dem HTML5 Boilerplate nicht verwenden? Das iPad 1 (zum Beispiel) hat Probleme damit, Elemente weit außerhalb der Seite zu platzieren.
/* Nur visuell ausblenden, aber für Screenreader verfügbar machen: h5bp.com/v */
.visuallyhidden { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
hoverActiveFocus kann mit @content geschrieben werden
Ich bin froh, dass immer mehr Leute anfangen, SASS zu nutzen.
Ich habe jedoch zwei Anmerkungen zu Ihrem Artikel
Ich denke, dass das Snippet „Vendor Prefixing“ etwas übertrieben ist. Heutzutage benötigen nur noch sehr, sehr wenige Eigenschaften die gesamte Bandbreite an Präfixen. Da Firefox sie für Animationen, Übergänge und Transformationen nicht benötigt und IE10 fast alles ohne Präfixe verwendet (und WebKit sicherlich bald folgen wird), ist ein so enormer Ausschnitt meiner Meinung nach nicht notwendig.
Und da Sie das Einbetten von Media Queries erwähnen: Tun Sie das nicht (oder schlagen Sie es nicht vor), denn das wäre ein wirklicher Grund für Code-Blähungen. Stellen Sie sich vor, Sie verschachteln jede Media Query für jede Eigenschaft/jedes Element direkt darunter. Das Zusammenfügen aller Media Queries am Ende des CSS ist immer noch der beste Weg, bis SASS dies für uns automatisiert.
Wie gehen Sie dann mit älteren Browserversionen um?
Sie erwarten doch nicht wirklich, dass alle Ihre Besucher die neueste Version haben, oder?
Sicher, Sie könnten für jeden Browser und jede Version ein separates Stylesheet haben, aber das scheint mir nicht sauberer zu sein – im Gegenteil…
SASS kann keine Media Queries am Ende der CSS-Dateien gruppieren, da dies die Spezifität der Selektoren durcheinanderbringt.
Wie Chris Coyer in einer aktuellen Folge von Shop Talk Show erwähnt hat, erledigt GZIPen Ihrer Dateien die gesamte Wiederholung, die durch eingebettete Media Queries entsteht. Es ist auch besser in Bezug auf die Codeorganisation, da Sie die gesamte Formatierung für ein Element sehen können, unabhängig von der Media Query.
Ich habe gerade den Sprung gewagt, Code Kit installiert und begonnen, bei meinem neuesten Projekt einen Präprozessor zu verwenden.
Meine einzige Frage ist: Auf der SASS-Website beziehen sie sich auf SASS & SCSS. Für mich scheint es, dass SCSS die neuesten Versionen von SASS sind. Wenn Sie sich auf SASS beziehen, meinen Sie dann SCSS?
@sebastian – sass & scss sind dasselbe. Sie sind nur unterschiedlich geschrieben :)
Nicht wirklich dasselbe dann. Unterschiedliche Syntax.
Ich war nur neugierig, ob Leute die SASS-Syntax oder die SCSS-Syntax verwenden.
Es gibt einen besseren Weg für generische Präfixe: Beispiel. Dies ermöglicht die korrekte Einstellung von Präfixen nach Eigenschaften. Zum Beispiel hat
border-radiusnie ein-o-Präfix.Nur ein kurzer Gedanke von mir – Sie möchten vielleicht Ihren @mixin für das Clear-Kommando in einen %placeholder umwandeln, um doppelte Codezeilen zu reduzieren. Die Verwendung solcher ist so einfach wie ein @mixin
„@extend clear;“
Tippfehler behoben
„@extend %clear;“
Zu tief verschachtelt = problematische Spezifität. Yep – das habe ich auch auf die harte Tour gelernt!
Ich war schon immer an Präprozessoren interessiert, habe sie aber nie wirklich ausprobiert. Nachdem ich das hier gelesen habe, glaube ich, es hat mich überzeugt, es endlich auszuprobieren!
Sass ist auf jeden Fall ein viel besseres Werkzeug, weil es einfach zu bedienen ist. Plus Compass ist eine großartige Sammlung von Mixins.
Ich habe Sass für ein paar Projekte verwendet und meine größte Enttäuschung ist, dass verschachtelte Selektoren den Descendant-Combinator (E F) anstelle des Child-Combinators (E > F) verwenden.
Ich benutze selten Descendant-Combinators, also benutze ich überall „& > F“.
Haben Sie auch http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/ für Offscreen-Text gesehen?
Beginnen Sie Ihren verschachtelten Selektor einfach mit
>,~oder+und das war's.sollte ausgeben
Ich habe es viel mit LESS verwendet und laut http://stackoverflow.com/questions/7345763/sass-and-combined-child-selector sollte es in SASS genauso funktionieren.
Offscreen-Text > Diese Methode ist wahrscheinlich etwas besser (ich habe sie noch nicht getestet), aber sehen Sie Paul Irishs Kommentar dazu.
Vor etwa 8 Monaten habe ich SASS in Betracht gezogen, das Wort „ruby“ gesehen, dann mit LESS und WinLess weitergemacht. Das war wahrscheinlich eine dumme Entscheidung. Eine Sache, die mich an LESS immer gestört hat, war, wie langsam es in Kombination mit WinLess war, um eine .css-Datei zu erstellen.
Die LESS-Entwicklung war monatelang stagniert (festgefahren bei v1.3.0) und die GitHub-Leute mit über 100 offenen Problemen wurden unruhig und sprachen darüber, es mit dem Segen des Entwicklers abzuspalten. Ich bin schließlich auf den SASS/Compass-Zug aufgesprungen, und es ist besser. LESS wurde gestern (18. Okt.) auf GitHub aktualisiert, aber ich gehe nicht zurück. Auf einem PC können Sie die Befehlszeile verwenden, um Ihre Dateien automatisch zu erstellen.
Zwei Tipps, die ich nicht erwähnt habe
1) Unter Windows öffnet sich bei Verwendung der Befehlszeile „compass watch“ in Kombination mit einer „config.rb“-Datei zum Beobachten und automatischen Erstellen Ihrer Dateien ein Dialogfeld in der Befehlszeile. Sie müssen es die ganze Zeit offen halten, was nervig ist. Ich benutze „HideIt“, um es im Tray-Bereich zu verstecken
http://vasanrulez.deviantart.com/art/HideIt-Hide-all-your-windows-206517834
2) Compass hat eine Killerfunktion namens „inline-image()“
http://compass-style.org/reference/compass/helpers/inline-data/
Dies ermöglicht es Ihnen, Ihre Bilder direkt in der Stylesheet Base64-zu kodieren, anstatt auf Dateien auf dem Server zu verweisen. Spart Downloads, hilft Ihren Yslow/Page Speed-Ergebnissen (wenn Sie darauf stehen) und dient als gute Möglichkeit, Ihre Bilder beim Caching zu ändern, da Sie keine tatsächlichen dateibasierten Bilder ausliefern.
Wenn Sie diese Technik verwenden, wird Ihre CSS-Datei dadurch ziemlich aufgebläht. Gzipping wird die Base64-Sachen nicht wirklich komprimieren, also optimieren Sie Ihre Bilder, bevor Sie sie „inline“ stellen. Schließlich, wenn Ihnen IE7 am Herzen liegt (da viele Websites diese demografische Gruppe immer noch bedienen müssen), müssen Sie ihm die echte Bilddatei geben, da er Base64 nicht versteht. So etwas wie
Nicht-Präprozessor-CSS ist verrückt. LESS ist ein schöner Gedanke. SASS+Compass ist genial. Danke David.
Ich benutze Sass seit etwa einem Jahr, sauberer Code hilft mir meiner Meinung nach, besseres CSS zu schreiben. Würde jetzt nicht mehr zurückgehen
Nachdem ich LESS bereits verwendet habe, hat es mich nicht wirklich inspiriert, von den traditionellen CSS-Techniken abzuweichen. Sass sieht jedoch gut aus, es könnte mich konvertieren :)
Compass hat Tonnen von CSS3-Helfern, die Sie nur importieren müssen und dann zur Verwendung tun
@include border-radius(5px, 5px);und gibt alle Vendor-Präfixe aus. Sie haben auch andere eingebaute Helfer wie vertikalen Rhythmus, um Ihre Schriftart konsistent zu halten. Ich weiß, dass Compass auch ein integriertes CSS Grid-Framework hat, aber ich habe kürzlich Susy verwendet, das von Eric Meyer erstellt wurde und ein responsives Grid-Framework ist. Ich habe es sehr gerne benutzt und es war sehr einfach zu erlernen.
Ich habe sowohl Less als auch Sass schon einmal benutzt. Ich denke, Sass hat derzeit mehr Optionen, aber Less ist nicht so schlecht. Ich weiß, dass es für mich schnell kompiliert und ich fand es einfacher, Less zu lernen, hauptsächlich weil die Dokumentation besser war. Ich hoffe, jemand nimmt das Zepter für Less bald auf und setzt die Arbeit fort, aber es ist etwas, das immer noch benutzt werden kann. Viele Leute haben es in letzter Zeit stark kritisiert und es scheint fast, als wäre es das angesagte Ding.
Was einen früheren Kommentar betrifft, dass man nur wenige Sekunden im Vergleich zu CSS spart, das stimmt wirklich nicht. Man spart Minuten, die sich später in Stunden verwandeln. Seitdem ich umgestiegen bin, hat sich mein Workflow erheblich verbessert.
Chris, kannst du einen Artikel über Sass + Compass Best Practices schreiben, da ich gerade vor denselben Problemen stehe?
Ich entwickle eine kleine Website und die CSS-Datei ist RIESIG (~40KB und ich fange gerade erst an)
Heya, ich bin noch relativ neu in SASS, also vielleicht verpasse ich hier etwas, aber ich frage mich, warum du einen Mixin für Clearfix verwendest und nicht Extend?
In der Ausgabe wiederholt der Mixin im Grunde den Clearfix-Code auf der Klasse, auf die du ihn anwendest, während Extend die Klasse einfach zum Code hinzufügt; was zu weniger "Bloat" führt. Außerdem wird sich der Clearfix-Code wahrscheinlich nicht ändern.
Danke!
Hallo Chris,
Toller Artikel über SASS,
Ich habe eine Frage zur Bearbeitung der CSS-Datei: Nachdem ich die Sass-Datei erstellt habe, kompiliert sie die CSS-Datei. Wenn ich in der Mitte der CSS-Datei bearbeite und dann wieder an der Sass-Datei arbeite, überschreibt sie dann meine Bearbeitungen in der CSS-Datei? Gibt es eine Möglichkeit, dies zu umgehen?
Bitte lassen Sie es mich wissen, wenn es eine gibt.
Mit freundlichen Grüßen,
Mufaddal
Mufaddal, wenn du etwas verwendest, um dein SASS automatisch in CSS zu kompilieren, wie z.B. Scout oder eine "compass watch"-Batchdatei, dann NEIN, es gibt keine Möglichkeit, die Überschreibung deiner .CSS zu umgehen.
Es scheint, als würdest du SASS/CSS so betrachten, als ob sie vorwärts und rückwärts synchronisiert sein sollten. Das Schreiben ist nur in eine Richtung: SASS zu CSS. Aber das ist der Punkt bei der Verwendung von SASS. Du solltest dich nie wieder in deine rohe .CSS-Datei vertiefen – du solltest von nun an nur noch deine .SASS-Datei(en) bearbeiten.
Wenn du das unbedingt deaktivieren musst, dann musst du alles ausschalten, was auf .SASS-Dateiänderungen prüft, und dann den Compiler manuell ausführen.
Aber sei dir bewusst, dass du dich dadurch Inkonsistenzen aussetzen kannst.
@Mufaddal
Ich denke an "_partials" und dann einfach reines CSS – denn CSS ist auch gültiges SCSS. All dein zusätzliches CSS wird also in das kompilierte Haupt-CSS importiert. Lies dir "Partials" durch, und es könnte eine gute Lösung für deine Bedürfnisse sein.
Ich weiß, mein Kommentar kommt spät, aber vielleicht ist er hilfreich für den Leser und den allgemeinen Stolperer.