Gibt es Vorteile von SASS gegenüber LESS? [geschlossen]


36

Ich versuche, diese CSS-Präprozessoren zu erforschen.

Gibt es irgendwelche Vorteile von sass gegenüber less als CSS-Präprozessor? Zu den Faktoren, die ich suche, gehören die Größe der Community, die Reife des Softwareprojekts usw.

Ich weiß, dass diesbezüglich noch eine andere Frage gestellt wurde , die jedoch nicht konstruktiv formuliert und abgeschlossen wurde.

Aktualisieren

Sieht so aus, als ob Bootstrap jetzt Sass verwendet

Antworten:


32

Chris Coyier hat einen großartigen Überblick über SASS vs LESS bei css-tricks.com . Es ist auf jeden Fall eine Lektüre wert.

Einige Ihrer spezifischen Fragen:

Gemeinschaft

Ich arbeite ausschließlich mit SASS / Compass, daher kenne ich die LESS-Community nicht genau, aber ich habe die SASS-Community auch nicht wirklich gebraucht. Ihre Dokumentation ist fantastisch und hat alle Probleme gelöst, auf die ich bisher gestoßen bin.

Für das, was es wert ist, sind hier die SASS vs LESS-Statistiken, die Chris in seinem Beitrag hat, den ich für aktuelle Zahlen aktualisiert habe:

Anzahl offener Fragen zu WENIGER: 121
Anzahl offener Fragen zu Sass: 87

Ausstehende Pull-Requests für LESS: 13
Ausstehende Pull-Requests für Sass: 8

Anzahl der Commits im letzten Monat in WENIGER: 49
Anzahl der Commits im letzten Monat in Sass: 7

Zu beachten ist, dass diese Zahlen zum Zeitpunkt von Chris 'Schreiben im Mai 2012 grob umgedreht wurden. Dies sagt mir, dass sie beide in Bezug auf die Entwicklungstätigkeit ziemlich gleich sind.

Reife

Technisch gesehen ist Sass älter. Es erschien im Jahr 2007, während LESS im Jahr 2009 herauskam. Trotzdem haben die Vergleiche, die ich gesehen habe, beide in Bezug auf Funktionen und so weiter auf den gleichen Reifegrad gebracht.

Beide haben auch Frameworks, die ihnen mehr Werkzeuge bieten. WENIGER hat weniger Framework und Centage (zusätzlich wird der Twitter-Bootstrap mit WENIGER erstellt). Sass hat Kompass, Schwerkraft und Susy. Beide haben wahrscheinlich mehr, wenn Sie nach ihnen graben, aber das sind einige der ersten, die auftauchen, wenn Sie suchen.

Gibt es also echte Unterschiede?

Wenn es darum geht, es zu schreiben, nicht wirklich. Wenn Sie in Sass die CSS-ähnliche SCSS-Syntax verwenden (anstelle der eher Python-ähnlichen SASS-Syntax), weisen Sie nur die typischen geringfügigen Syntaxunterschiede ( @vs $) auf, die jedoch größtenteils im Grunde gleich sind.

Die beiden größten Unterschiede bei der Codierung, die ich festgestellt habe, waren: a) wie sie beim Rechnen mit Einheiten umgehen und b) wie sie mit der Vererbung umgehen. Wenn so etwas gegeben 20px + 2emwird LESS die zweite Einheit fallen und nehmen Sie das erste (yeilding bedeuten 22px), während Sass wird einen Fehler werfen (im Grunde, Typ Mismatch). Bei der Vererbung wird es von LESS wie ein Mixin behandelt (ich kann es nicht wirklich gut erklären, daher finden Sie weitere Informationen im Abschnitt zur Inhertanz in diesem Tuts + -Artikel ).

Ob einer der anderen überlegen ist, hängt davon ab, wie Sie es vorziehen, mit Dingen umzugehen.

Der andere größte Unterschied, den ich kenne, ist, wie und wo jeder standardmäßig kompiliert wird. Sass verwendet Ruby und kompiliert auf dem Server, sodass Sie die kompilierte CSS-Datei speichern und an den Client senden können. WENIGER hingegen verwendet standardmäßig das Skript less.js, um das CSS im laufenden Betrieb zu kompilieren. Mit der Verwendung von Node.js kann LESS jedoch auf der Serverseite auf dieselbe Weise kompiliert werden wie Sass.

Welcher?

Also, wenn sie im Grunde gleich sind, welche sollten Sie verwenden? Nun, es sei denn, Sie lieben die Python-ähnliche SASS-Syntax wirklich, oder Sie glauben wirklich, dass die clientseitige Kompilierung der richtige Weg ist, oder Sie bevorzugen den Aufruf einer Vererbung gegenüber der anderen habe schon) Ruby oder Node.js installiert.


2
+1 Schöne Zusammenfassung. Sofern es nicht kürzlich hinzugefügt wurde, hat LESS auch nichts Vergleichbares zu Sass's @extend
steveax

Die Entwicklung von LESS scheint in letzter Zeit stark zugenommen zu haben. Sie fügen eine @extend-Syntax in 1.5.0 (: extend () -Syntax) hinzu. Sie fügen unter anderem auch Source Maps hinzu.
WraithKenny

WraithKenny - Das bringt sie technisch immer noch hinter Sass. Standardisierte Quellkarten befinden sich derzeit in den Testzweigen (und sie haben seit --debug-infoeiniger Zeit nicht standardmäßige "Quellkarten" mit und Zeilenkommentare für Firebug und Chrome, bevor die Standardkarten herauskommen) und Platzhalter (im Grunde genommen @extend, ohne die Klasse zu schreiben, von der erweitert werden soll) sind in der neuesten Version.
Shauna

@Shauna ist sich nicht sicher, wie sie "technisch" dahinter stecken ... WENIGER hat seit letztem Jahr "Nicht-Standard-Quellkarten" und hat bereits Standard-Quellkarten in der neuesten stabilen Version, im Gegensatz zu Sass.
Subhaze

@subhaze - Zum Zeitpunkt der vorherigen Kommentare verfügte LESS nicht über die Extend-Syntax, so dass diesbezüglich noch ein Rückstand bestand. Darüber hinaus hat Sass in den letzten stabilen Builds die Funktion "Platzhalter" hinzugefügt. Das heißt, ich werde nicht alle paar Monate Ergänzungen vornehmen, um die neuesten Funktionen der einzelnen Sets zu vergleichen. Wie ich in meiner Antwort sagte, sind beide ziemlich gleich, und wenn einer ein Feature hinzufügt, das der andere nicht hat, ist der andere normalerweise nicht weit dahinter.
Shauna

6

Ich glaube, dass Ihre Wahl zumindest ein bisschen davon abhängt, was Sie tun oder verwenden. Ich arbeite hauptsächlich mit Rails und es unterstützt Sass für sein CSS bis zu dem Punkt, dass es beim Erstellen eines neuen Projekts aktiv einbezogen wird. Wenn Sie so etwas wie den allseits beliebten Bootstrap verwenden möchten, der standardmäßig Less verwendet, müssen Sie sich keine Sorgen machen , da es viele beliebte Juwelen wie bootstrap-sass gibt, mit denen Sie ihn in Ihrem Projekt verwenden können.

Dies ist streng anekdotisch, aber jeder Eindruck, den ich persönlich hatte, ist, dass Sass eine größere Community und mehr Unterstützung hat, und ehrlich gesagt ist die offizielle Dokumentation für Sass viel detaillierter und umfangreicher als die von Less (Erhöhung der Schriftgröße und Auffüllung für alles) macht kein längeres stück text). Wenn Sie auf Einzelheiten eingehen möchten, obwohl ich mit Less nicht ganz vertraut bin und mich ausschließlich auf beide Sprachen konzentriere, ist Sass die einzige mit Selektorvererbung. Ich bin sicher, dass es andere Unterschiede gibt, auf die die Leute eingehen können.

Am Ende hat jeder seine Vorlieben und wenn Sie feststellen, dass einer besser zu Ihnen passt als der andere, sollten Sie ihn auf jeden Fall verwenden, wenn er das kann, wozu Sie ihn brauchen. In meiner Zeit mit Sass habe ich jedoch die Klarheit und Effektivität sehr genossen, insbesondere in Anbetracht der Tatsache, dass ich im Rails-Bereich bin.


Einverstanden, wenn Sie bereits auf Ruby sind, macht SASS Sinn. Ich bin eher ein JavaScript-Typ, also WENIGER für mich!
WraithKenny

5

Ich bin mir nicht sicher, ob Less etwas Vergleichbares hat, aber einer der Hauptvorteile von Sass ist die Compass- Bibliothek, die Ihnen viele gängige CSS-Idiome, Standard-Hacks für ältere Browser und CSS3-Funktionalitäten bietet, ohne dass ein Browser-Präfix erforderlich ist, um dies nicht zu tun Erwähnen Sie die automatische Generierung von CSS für Sprite-Bilder.

Ein weiterer Vorteil - zumindest für mich - ist, dass Sass eine Python-ähnliche Syntax zulässt, die ich viel besser lesbar finde.


Vergleichbar mit Kompass? Ich weiß es nicht, aber sie haben Twitter Bootstrap.
WraithKenny

Nun, sie sind verschiedene Tiere. Bootstrap ist eine Reihe von Konventionen und Widgets, während Compass eine Sammlung von wiederverwendbaren Mixins os
Andrea

Bootstrap ist auch in Sass verfügbar.
Shauna
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.