Gibt es ein Tool, das CSS in less.css konvertiert?

21

Ich habe eine ziemlich große CSS-Datei, die ich in weniger konvertieren möchte. Als ich das CSS geschrieben habe, wusste ich nicht less.css, aber jetzt möchte ich immer noch mein altes CSS verwenden.

Gibt es ein Tool, mit dem ich es automatisch konvertieren kann?

js-coder
quelle
Siehe meine Änderungen unten.
Fatnjazzy
Sie sollten die Antwort von @Simone Carletti überprüfen und vielleicht etwas näher auf Ihre Fragen eingehen. Möglicherweise ist keine eigentliche "Konvertierung" erforderlich, außer der Umbenennung Ihrer Datei.
Su‘
Interessant, aber ich frage mich, ob es sich lohnt, 33 KB JS-Code (less.js) hinzuzufügen, um die Größe von CSS-Dateien zu verringern.
Marco Demaio
1
Ich benutze den JavaScipt-Compiler offensichtlich nicht. Und die Größe des CSS ist nicht der Grund, warum ich es benutze. Wartbarkeit ist der Grund. :)
js-coder

Antworten:

17

Ich habe jetzt tatsächlich etwas gefunden: http://leafo.net/lessphp/lessify/

Es macht eine grundlegende Formatierung, zB:

#header {
/* ... */
}

#header p {
/* ... */
}

zu

#header {
/* ... */
p {
/* ... */
}
}
js-coder
quelle
15

Tatsächlich benötigen Sie kein Konvertierungstool, um mit LESS zu arbeiten. Die LESS-Syntax ist abwärtskompatibel mit CSS . Das bedeutet, dass jede CSS-Datei auch eine gültige WENIGER-Datei ist.

Holen Sie sich einfach Ihr CSS und benennen Sie es in eine WENIGER-Datei um. Verwenden Sie dann WENIGER-spezifische Funktionen zusammen mit Ihren Änderungen. Je öfter Sie die Datei aktualisieren, desto mehr können Sie WENIGER Funktionen verwenden.

Ich habe dasselbe für SCSS und ein sehr großes Projekt mit 10 CSS-Dateien gemacht. Es war fast unmöglich (und eine enorme Zeitverschwendung), alles CSS mit SCSS neu zu schreiben. Ich habe es einfach umbenannt. Jedes Mal, wenn ich an der CSS-Datei arbeitete, führte ich ein kleines Refactoring des Codes durch, um Mixins, Variablen usw. zu nutzen.

Simone Carletti
quelle
Dies bringt einen wirklich guten Punkt. Die Antworten scheinen bisher auf dem „convert“ Teil der Frage konzentriert zu werden, tun Mixins etc. und nicht nur , ob die aktuelle Datei kann verwendet in einem Schalter auf LESS - Workflow.
,
6

Hast du dich wenigstens umgesehen? CSS kann viel besser konvertiert werden als Lessify. Insbesondere optimiert Lessify Ihre Klassen nicht sehr gut. Es kopierte die Zurücksetzung des Browsers auf alle generierten Mixins und erzeugte redundante Attribute. Es ist klar, dass es sich noch im experimentellen Stadium befindet. Keine der Dienstprogramme kann die Semantik bestimmen, sodass sie keine Werte in Ausdrücke, Variablen oder parametrische Mixins konvertieren können.

Am wenigsten optimiert es besser und scheint funktionaler zu sein. Es behandelt sogar Pseudoklassen für Sie:

http://toki-woki.net/p/least/

Diese Tools eignen sich ideal für die Arbeit mit großen, bereits vorhandenen CSS-Dateien. Ich empfehle die folgenden Schritte, um CSS in LESS zu konvertieren (stellen Sie sicher, dass Sie eine Kopie der ursprünglichen CSS-Dateien behalten):

  1. Wenn Sie mit mehreren additiven CSS-Dateien arbeiten, fügen Sie diese zu einer einzigen CSS-Datei zusammen. Dies stellt sicher, dass alles gemeinsam WENIGER und optimiert wird.

  2. Führen Sie den resultierenden CSS-Code über ein Online-CSS-Bereinigungsprogramm aus. Ich habe mit cleancss gute Ergebnisse erzielt: http://www.cleancss.com/ . Dadurch werden alle überflüssigen und redundanten Markups entfernt, die möglicherweise nicht von einem WENIGER-Konverter erfasst werden.

  3. Entfernen Sie @Media und alle Stile, die Sie in der CSS-Datei gespeichert haben. Sie können Probleme verursachen oder mögliche Redundanzen verursachen. Es ist wahrscheinlich eine gute Idee, die Resets in einer separaten Datei zu speichern.

  4. Fügen Sie die resultierende CSS-Datei in Least ein und beobachten Sie das Biest.

  5. Führen Sie Ihre Zurücksetzungen und @screen erneut ein.

  6. Nachdem Sie fertig sind, durchsuchen Sie jedes der Attribute und suchen Sie nach geeigneten Kandidaten für das Refactoring, um sie in WENIGER-Variablen und -Ausdrücke umzuwandeln. CSS-Farb- und Schriftattribute lassen sich am einfachsten ausklammern, einfaches globales Suchen und Ersetzen funktioniert problemlos. Am Ende können Sie entscheiden, ob Sie die einzelne Datei in kleinere logische Dateien aufteilen möchten. Möglicherweise werden Sie durch diesen Vorgang veranlasst, Ihre Dateien auf eine andere Weise neu zu organisieren.

Ich bin nicht der Autor von Least, sondern nur jemand, der nach einem ähnlichen Werkzeug sucht, und habe beschlossen, der Welt davon zu erzählen.

Joel Rodgers
quelle
Verstehen diese Konverter nicht @import? Ich dachte, dass LESS in der Lage ist, @importAnweisungen zu analysieren und alle Ihre Stylesheets in einem einzigen CSS zu konsolidieren, wenn Ihre LESS-Dateien kompiliert werden. Es scheint, als würde das Speichern Ihres gesamten übersichtlichen CSS in einem einzigen riesigen Stylesheet, um es in WENIGER zu konvertieren, ein Rückschritt für die Wartbarkeit sein.
Lèse Majesté
Diese Tools sind zwar vorhanden, Sie müssen sie jedoch ausschneiden und in ein Textfeld einfügen, damit sie nicht auf Ihre externen Stylesheets zugreifen können.
Joel Rodgers
Ah, ich habe nicht wirklich auf die Links geklickt. Ich hatte angenommen, es handelte sich um Desktop-Tools. Das macht dann Sinn.
Majestätsbeleidigung
5

Ich glaube nicht, dass ein Konverter wissen kann, was Sie mit einem Großteil des Codes machen wollen.

Beispielsweise würde es nicht unbedingt wissen, welche Variablen Sie verwenden möchten. Oder wie man Mixins oder Funktionen generiert.

Ich denke, mit diesem müssen Sie es manuell tun.

Jason Gennaro
quelle
Einverstanden. Hier ist eine gewisse Schlussfolgerung und Kenntnis Ihrer Absicht erforderlich, für die Computer einfach nicht geeignet sind. Sie werden in der Lage sein, einige Aufgaben zu automatisieren (siehe den Link von @dotweb) und möglicherweise Dinge wie Farbwerte in einer einzigen Variablen zu konsolidieren, aber das ist wahrscheinlich auch schon alles.
Su‘
Ja, aber die Konvertierung von WENIGER zu CSS ist eine 1 zu 1-Konvertierung, daher gibt es theoretisch einen Algorithmus, der optimierten WENIGER-Code aus CSS erstellen kann ... Jemand muss ihn nur schreiben.
Trusktr
Mixins können in beide Richtungen ausgeführt werden, da es für den Computer einfach ist, Selektoren zu sammeln, zu gruppieren und zu verschachteln. Glücklicherweise ist dies der langwierigste Teil der Konvertierung und dies ist berechenbar (siehe meine Antwort). Ungeachtet dessen kann CSS aufgrund der Kaskadierung anders gerendert werden als das ursprüngliche CSS. Variablen und Ausdrücke sind nicht möglich. Computer können Absichten oder Semantiken nicht bestimmen. Wie kann ein Computer herausfinden, dass Breite: 400 in CSS tatsächlich Breite: Seitenbreite / 2 in WENIGER ist? Ein Konverter könnte Farben und Schriftarten in Variablen konvertieren.
Joel Rodgers
@ JoelRodgers, warum impliziert die Kaskadierung von CSS, dass "Dekompilierer" fehlerhaft sein werden? (Offensichtlich ist ein Dekompiler möglicherweise fehlerhaft, aber im Prinzip ist es nicht schwer zu sagen, ob eine Neuordnung von Begriffen die Semantik ändert).
Peter Taylor
Ich spreche von Klassendeklarationen und Attributen. Sie müssen sie in genau der gleichen Reihenfolge deklarieren, da sonst unterschiedliche Ergebnisse erzielt werden. Schlechter Fehler, ich meinte verschachtelte Regeln anstelle von Mixins.
Joel Rodgers
3

Wie wäre es mit Suchen und Ersetzen?

wenn Sie haben color:#ffffffund Sie es ändern möchten@color

einfach suchen color:#ffffffoder color : #ffffffersetzen mit @color.

Normalerweise vertraue ich diesen Werkzeugen nicht.

Oder Sie können ein wirklich einfaches PHP-Skript schreiben, das damit umgeht.

Update 1 :
Oder Sie können die http://nex-3.com/posts/96-scss-sass-is-a-css-extension verwenden, die der Erweiterung less ähnelt und über ein Konvertierungstool verfügt.

fatnjazzy
quelle
Ja, darüber habe ich schon nachgedacht. Aber es ist eine ziemlich große Datei, daher möchte ich sicherstellen, dass dies der einfachste Weg ist. ;) Denken Sie an Mixins etc.
Oder Sie können ein wirklich einfaches PHP-Skript schreiben, das damit umgeht.
fatnjazzy
1
Sie werden kein Tool finden, das reines CSS zuverlässig in weniger Mixins konvertiert.
Alex
Du hast recht. Automatische Variablen und Mischen sind unsinnig.
0

Versuchen Sie diese Seite: css2less.cc

Es konvertiert Ihr CSS während der Eingabe in WENIGER.

Webdesigner
quelle