Sass wurde entwickelt, um CSS schneller schreiben zu können. Mixins sind die Merkmale, die es möglich machen. Es gibt mehrere schwergewichtige Bibliotheken mit komplexen Formeln für jede Situation, aber heute werde ich zeigen, wie Sie Ihre eigenen Mixins aufrühren können, die bestehende Workflows ergänzen.

Miniaturbild: Mischen Sie das Ei auf PhotoDune.

Hinweis: Die fertigen Dokumentdateien können im Voraus heruntergeladen werden, um zu sehen, was wir erstellen werden, und um eine Vorstellung davon zu erhalten, wie rohe Sass-Dateien aussehen.


Ich benutze Sass seit mehr als einem Jahr in meiner Front-End-Entwicklung, und Mixins waren das Feature, auf das ich mich sofort einrichtete.  Ich sah eine sofortige Reduzierung der Zeit, die ich mit dem Schreiben von Stylesheets verbrachte, egal wie groß oder klein das Projekt war.  Aber was sind Mixins? Von der Sass Language Website:

Mixins sind eine der mächtigsten Sass-Funktionen.  Sie ermöglichen die Wiederverwendung von Stilen – Eigenschaften oder sogar Selektoren – ohne sie kopieren und einfügen oder in eine nicht-semantische Klasse verschieben zu müssen.

Anders gesagt, Mixins sind Codegeneratoren.  Sie erstellen ein Mixin in Ihrem Sass-Stylesheet mit der @mixin-Direktive, definieren die CSS-Regeln, die es ausgeben soll, und rufen es immer dann auf, wenn Sie diese Regeln in einer Style-Deklaration benötigen.  Ich verwende Mixins ausschließlich für CSS3-Funktionen wie Box-Schatten, Text-Schatten und Rand-Radien.  Viele dieser Funktionen werden nicht vollständig unterstützt und erfordern, dass ein Herstellerpräfix wie -webkit-, -moz-, -ms-, -o- wie erwartet funktioniert.  Anstatt jedesmal fünf Regeln zu schreiben, wenn ich eine CSS3-Funktion verwenden möchte, kann ich ein einzeiliges Mixin aufrufen und es für mich richtig CSS generieren lassen.


Schritt 1: Überprüfen Sie Ruby auf Ihrem lokalen Rechner

Diese ersten beiden Schritte erfordern, dass wir die Terminal-App (Eingabeaufforderung in Windows) öffnen, um die Ruby-Sprache zu überprüfen und das Sass-Juwel zu installieren.  Suchen Sie in folgenden Orten nach dem Terminal:

  • Mac OS X: Programme> Dienstprogramme> Terminal
  • Linux: Anwendungen> Zubehör> Terminal
  • Windows: Startleiste der Taskleiste> Eingabeaufforderung

Sobald das Terminal geöffnet ist, geben Sie den folgenden Befehl
ein, um nach einer Ruby-Installation zu suchen.  Tippen Sie nicht das Dollarzeichen – es ist Ihr Platzhalter.

Sie sollten einige Pfadinformationen wie / usr / local / bin oder eine Fehlermeldung sehen, wenn Ruby nicht installiert ist.  Hier ist die Ausgabe von meinem OS X Terminal:

Terminal output for which ruby command

Terminal-Ausgabe, für die Ruby-Befehl Wenn Sie einen Fehler erhalten oder wissen, dass Ruby nicht auf Ihrem Computer installiert ist, finden Sie hier einige Ressourcen, die mit minimalem Aufwand eingerichtet werden können.  Der Prozess zum Installieren von Ruby geht über den Rahmen dieses Artikels hinaus und ist auf den folgenden Seiten gut dokumentiert.


Schritt 2: Installieren Sie den Sass Gem

Sobald Sie die Ruby-Sprache verifiziert oder installiert haben, ist
Sass ein Kinderspiel.  Geben Sie im Terminal den folgenden Befehl ein: $ gem install sass.  Wenn Ihr Benutzer nicht über die richtigen Berechtigungen verfügt, müssen Sie den Befehl möglicherweise mit sudo (Super User Do) wie folgt ausführen: $ sudo gem install sass installieren.  In einigen Sekunden sollten Sie eine Ausgabe ähnlich der folgenden Anzeige sehen.

Terminal output for Sass gem installation

Schritt 3: Laden und installieren Sie LiveReload

Während Sie keine Compiler-App wie LiveReload, Compass oder CodeKit benötigen, um Sass in Vanilla-CSS zu kompilieren, macht es diese erste Reise um den Block viel reibungsloser.  CodeKit ist nur OS X, LiveReload ist in erster Linie für OS X, mit einer Windows-Betaversion; Compass App funktioniert unter OS X, Windows und Linux.  Lizenzen liegen zum Zeitpunkt des Schreibens zwischen 10 USD und 25 USD, sind aber für die eingesparte Zeit wert, wenn Sie tiefer in die Entwicklung von Sass einsteigen.

Jetzt wäre es eine gute Zeit zu erwähnen, dass Sass in zwei
Geschmacksrichtungen kommt, .ssass und .scss.  Ohne auf Details einzugehen, bleibe ich bei der .scss-Syntax, da sie Vanilla-CSS sehr ähnlich ist und kompiliert, ohne irgendwelche Schluckauf.

Nachdem Sie Ihren Compiler eingerichtet haben, sollten Sie ein Arbeitsverzeichnis mit Ihren HTML- und CSS-Dateien einrichten.  Für dieses Tutorial habe ich ein Beispiel namens Write Your Own Sass Mixins erstellt.  Unten ist die Struktur, auf die ich mich während des gesamten Tutorials beziehen werde.  Wenn Sie die Dokumentdateien noch nicht heruntergeladen haben, tun Sie dies bitte und fügen Sie die Dateien Museo Sans und Droid Serif dem Verzeichnis / fonts hinzu.  Diese Schriftarten werden für einige der Mixins benötigt, die wir später im Tutorial erstellen werden.

Da ich mich für LiveReload entschieden habe, sagen wir, dass es nach Änderungen Ausschau halten sollte, die in CSS kompiliert werden sollten.  Wenn Sie LiveReload starten, sollten Sie mit dem unten gezeigten Bildschirm begrüßt werden.  Ziehen Sie Ihr Arbeitsverzeichnis in die Seitenleiste Überwachte Ordner im LiveReload-Fenster.

Drag your working folder into LiveReload to start watching for changes

Als nächstes sollten Sie die Compile SASS-, LESS-, Stylus-,
CoffeeScript- und andere Felder
prüfen.  Klicken Sie auf Optionen, um den nächsten Ausgabepfad auszuwählen.

Check the Compile SASS, LESS, Stylus, CoffeeScript and Others box

Sie sollten eine leere Tabelle mit markierten Ausgangspfaden sehen und scss / main.scss in der ersten Zeile markieren. Klicken Sie hier auf die Schaltfläche Output-Ordner festlegen.  Der CSS-Ordner sollte standardmäßig ausgewählt sein.  Klicken Sie auf Ausgabeordner festlegen und Übernehmen.

Selecting your output folder for compiled Sass
Selecting your output folder for compiled Sass
Selecting your output folder for compiled Sass

Aktualisieren Sie Ihre index.html-Datei mit diesem Code und aktualisieren Sie Ihren Browser.  Ihr Index sollte wie der folgende Bildschirm aussehen.

A basic index.html file

LiveReload bietet Browsererweiterungen für Firefox und Chrome, aber der schnellste Weg zum Starten ist das Kopieren des folgenden Javascript-Snippets (aus dem LiveReload-Fenster) in Ihre index.html-Datei, direkt über dem schließenden Body-Tag.  Sobald dieses Snippet vorhanden ist, wird LiveReload auf Änderungen an Ihren HTML- und Sass-Dateien warten und den Browser automatisch aktualisieren – nicht mehr Command + R alle paar Minuten.

Jetzt, wo wir mit der Verwaltung fertig sind, können wir Mixins
erstellen und unseren Compiler die harte Arbeit machen lassen.


Schritt 4: Grenzradius – Ihr erster Utility Mixin

Wie bereits erwähnt, verwende ich viele CSS3-Funktionen in meinen Seitenlayouts.  Das Problem mit diesen führenden Funktionen ist, dass sie viele Hersteller-Präfixe benötigen und ich nicht viel Geduld habe.  Wenn ich einmal ein Mixin schreiben kann, statt fünf stark duplizierten CSS-Zeilen jedes Mal, wenn ich abgerundete Ecken möchte, werde ich es tun.

Mixins werden in Sass-Dateien durch die @mixin () {} -Deklaration identifiziert.  Immer wenn ein Prozessor wie LiveReload auf diese Syntax stößt, sucht er nach Argumenten innerhalb der Klammern und CSS-ähnlichen Anweisungen in den geschweiften Klammern.  Der Compiler interpretiert diese Anweisungen und gibt in diesem Fall reines CSS an Ihr Stylesheet, main.css, aus.

Öffnen Sie Ihre main.scss-Datei und kopieren Sie den folgenden Mix-Code.  Wenn Sie auf Speichern klicken, sollte Ihr Browserfenster mit index.html automatisch neu geladen werden und ein graues Zentrum mit 6px abgerundeten Ecken haben.

Index.html with a proper border-radius mixin

Schritt 5: Erweitern Sie den Border Radius Mixin

Wir haben also einen guten Start mit unserem ersten Mixin.  Aber die Grenz-Radius-Mischung hat eine Schwachstelle: Wenn wir eine Grenze mit einer Deckkraft von weniger als 100% anwenden, wird der Hintergrund durchscheinen.  Nicht gerade eine großartige Designwahl in vielen Fällen.

Zum Glück haben wir eine einfache Lösung in der
Hintergrund-Clip-Eigenschaft.  Wenn Sie nicht vertraut sind, hat Chris Coyier von CSS-Tricks einen tollen Bericht über die Immobilie.

Sass Mixins können auch mit anderen Mixins erweitert werden.  Auf diese Weise können wir den Hintergrund-Clip separat schreiben und ein drittes Mixin erstellen, das es aufruft, und unsere Regeln für den Grenzbereich aus dem vorherigen Schritt.  Fügen Sie Ihrer main.scss-Datei den folgenden Code hinzu und speichern Sie sie.  Nach dem Aktualisieren Ihres Browsers sollten Sie einen blauen Hintergrund und einen halbtransparenten hellblauen Radius-Rahmen sehen.

Obwohl wir anfangs mehrere Zeilen dupliziert haben, haben wir jetzt ein wiederverwendbares Mixin, das jederzeit aufgerufen werden kann, indem wir die Grenzradiuswerte angeben.  Und es wird richtig rendern.


Schritt 6: Textschatten

Textschatten sind eine gute Möglichkeit, typografische Behandlungen und Schaltflächen zu stempeln.  Ich verwende sie oft für ausgewählte Navigationszustände, Tabs oder Labels.  Sie sind auch eines der ärgerlichsten Dinge, weil IE9 sie nicht unterstützt, und es gibt keine guten reinen Workarounds.

Trotz dieser bedauerlichen Tatsache, ich schließe Mixing-Code für die anderen modernen Browser und IE 10 Beta.  Ich bin auch auf ein jQuery-Skript für Text-Schatten-Rendering in IE9 oder niedriger gestoßen.

Für moderne Browser ist die Eigenschaft text-shadow ähnlich wie der Box-Schatten strukturiert, mit einem horizontalen und vertikalen Offset, einer Unschärfe und Farbparametern.  Fügen Sie Ihren main.scss- und index.html-Dateien den folgenden Code hinzu, und Sie sollten einen 3px-verwischten Schatten hinter blauem Text sehen.

Index.html, kurz nach Div #wrapper Endtag hinzufügen


Schritt 7: Weitere Utility Mixins

Für den letzten Schritt habe ich Mixins für Box-Schatten,
Hintergrund-Farbverläufe, @ Font-Face-Deklarationen und verbessertes Typ-Rendering erstellt.  Diese Mixins wurden in modernen Browsern (Firefox, Chrome, Safari, Opera, IE9) getestet und enthalten alle herstellerspezifischen Präfixe.

Ich werde nicht auf jedes Detail eingehen; detaillierte Kommentare sind in der Datei main.scss enthalten.  Mixins folgen einem Basisformat und können bei sich ändernden Anforderungen weiterentwickelt werden.  Wenn Sie ein CSS benötigen, kann ein Mixin geschrieben werden, um es zu bedienen.

Aktualisieren Sie Ihre index.html- und main.scss-Dateien mit dem folgenden Code. Nach der Aktualisierung sollten Sie ein Browserfenster sehen, das eine Anzahl von Feldern enthält, die jeweils einen anderen Mix-Test zeigen.


Fazit

Sass Mixins sind eine großartige Möglichkeit, schnell mit CSS3 loszulegen.  Unabhängig davon, ob Sie drahtlos im Code arbeiten oder eine komplette Site von Grund auf neu erstellen, mixins werden Ihren Workflow verbessern, indem Sie die Zeilenanzahl und den Zeitaufwand für das Überprüfen der Syntax reduzieren.

Da diese Funktionen CSS3-zentriert sind, sollten Sie einen Backup-Plan für ältere Browser erstellen.  Bei einigen Websites sind abgerundete Ecken und Schatten nicht kritisch, und es ist durchaus akzeptabel, ein verschlechtertes visuelles Layout zu zeigen.  Für andere kann ein Polyfill wie Modernizr Feature-spezifische Klassen bereitstellen, um Fallback-CSS-Regeln zu schreiben.

Ich hoffe dir hat dieses Tutorial gefallen, danke fürs Lesen!


Source link