Чи є інструмент, який перетворює css в less.css?


21

У мене досить великий CSS файл, який я хочу перетворити на менший. Коли я писав CSS, я не знав less.css, але тепер я все ще хочу використовувати свій старий CSS.

Чи є інструмент, який може допомогти мені автоматично перетворити його?


дивіться мої зміни нижче.
fatnjazzy

Слід перевірити відповідь @Simone Carletti і, можливо, розширити те, про що ти насправді трохи просиш. Можливо, не потрібна фактична "конверсія", крім перейменування вашого файлу.
Су '

Цікаво, але мені цікаво, чи варто додати 33 Кб коду JS (less.js), щоб зменшити розмір файлів CSS.
Марко Демайо

1
Я, очевидно, не використовую компілятор JavaScipt. І розмір CSS - це не причина, чому я його використовую. Причиною є ремонтопридатність. :)
js-coder

Відповіді:



15

Насправді вам не потрібен жоден інструмент перетворення, щоб почати працювати з МЕНШЕ. Менше синтаксис назад сумісний із CSS . Це означає, що будь-який CSS-файл також є дійсним меншим файлом.

Просто дістаньте свій CSS та перейменуйте його у МЕНШИЙ файл. Потім використовуйте менші функції, а також зміни. Чим більше ви будете оновлювати файл, тим більше ви зможете використовувати Менше функцій.

Я зробив те саме для SCSS і дуже великий проект з 10 CSS-файлами. Бути майже неможливо (і величезна витрата часу) переписати всі CSS на SCSS. Я просто перейменував його, а потім кожного разу, коли я працював над файлом CSS, я виконував невеликий рефакторинг коду, щоб скористатися комбінаціями міксинів, змінних тощо.


Це викликає дійсно хороший момент. Поки здається, що відповіді орієнтовані на "конвертувати" частину питання, роблячи міксинги тощо, а не лише на те, чи можна використовувати поточний файл для переходу на МЕНШИЙ робочий процес.
Су '

6

Ви подивилися на Леста? Набагато краще в перетворенні CSS, ніж в Lessify. Зокрема, Lessify не дуже оптимізує ваші заняття. Він скопіював браузер скидає всі створені міксини, створюючи зайві атрибути. Зрозуміло, що це ще на експериментальній стадії. Жодна утиліта не може визначити семантику, тому вони не можуть перетворити значення у вирази, vars або параметричні міксини.

Щонайменше, це найкраща робота з оптимізації та, здається, є більш функціональною. Він навіть обробляє псевдокласи для вас:

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

Ці інструменти ідеально підходять для роботи з великими попередніми CSS-файлами. Ось такі кроки, які я рекомендую перетворити CSS у МЕНШЕ (Не забудьте зберегти копію оригінальних файлів CSS):

  1. Якщо ви працюєте з декількома файлами CSS-добавок, об'єднайте їх в один CSS-файл. Це гарантує, що все МЕЖЕ і разом оптимізовано.

  2. Запустіть отриманий код CSS через онлайн-утиліту очищення CSS. Я мав хороші результати з cleancss: http://www.cleancss.com/ . Це призведе до видалення будь-якої сторонньої та надлишкової розмітки, яка може бути не підхоплена МЕНШИМ перетворювачем.

  3. Видаліть @Media і будь-який перезавантажений стиль у файлі CSS. Вони можуть створити проблеми або ввести можливі надмірності. Мабуть, хороша ідея зберігати скидання в окремому файлі.

  4. Вставте отриманий файл CSS в Least і спостерігайте за звіром.

  5. Повторно введіть скидання та @screen.

  6. Тепер, коли ви закінчите, перегляньте кожен з атрибутів і знайдіть хороших кандидатів для рефакторингу та перетворіть їх на менші змінні та вирази. Кольорові та шрифтові атрибути CSS - це найпростіший фактор, який просте, простий глобальний пошук та заміна працює добре. Наприкінці ви можете вирішити, чи хочете ви розділити один файл на менші логічні файли. Ви можете виявити, що процес змушує вас реорганізувати файли іншим способом.

Я не автор Леаста, просто хтось шукав подібний інструмент і вирішив розповісти про це світові.


Хіба ці перетворювачі не розуміють @import? Я думав, що LESS зможе проаналізувати @importоператори та об'єднати всі ваші таблиці стилів в єдиний CSS, коли ваші файли менше будуть зібрані. Здається, що скидання всіх ваших чітко організованих CSS в єдиний гігантський таблицю стилів для того, щоб перетворити його на МЕНШЕ, було б кроком назад до ремонту.
Lèse majesté

Вони є, але майте на увазі, що ці інструменти існують в Інтернеті, тому вам потрібно вирізати та вставити їх у текстове поле, щоб вони не мали доступу до ваших зовнішніх таблиць стилів.
Джоель Роджерс

Ах, я фактично не натискав посилання. Я вважав, що це настільний інструмент. Тоді це має сенс.
Lèse majesté

5

Я не думаю, що існує спосіб, щоб конвертер дізнався, що ви хочете зробити з великою частиною коду.

Наприклад, не обов'язково знати, які змінні ви хочете використовувати. Або як генерувати міксини чи функції.

Я думаю, що з цим вам потрібно буде це зробити вручну.


Домовились. Тут потрібна певна кількість висновків і знань про ваші наміри, до яких просто не підходять комп'ютери. Ви зможете автоматизувати деякі завдання (див. Посилання від @dotweb) і, можливо, об'єднати такі речі, як значення кольорів, в одну змінну, але це, мабуть, саме про це.
Су '

Так, але конверсія з меншої кількості в CSS - це конверсія від 1 до 1, тому теоретично існує якийсь алгоритм, який може створити оптимізований менший код із CSS ... Комусь просто потрібно це написати.
trusktr

Mixins може піти в будь-який бік, оскільки комп'ютер легко збирати та групувати селектори разом та вкладати їх. На щастя, це найбільш виснажлива частина конверсії, і це обчислимо (див. Мою відповідь). Незалежно від того, зважаючи на каскадний характер CSS, він може відображатись інакше, ніж оригінальний CSS. Змінні та вирази неможливі. Комп'ютери не можуть визначити наміри чи семантику. Як комп'ютер може зрозуміти, що ширина: 400 у CSS - це насправді ширина: ширина сторінки / 2 менше? Конвертер міг би перетворити кольори та шрифти в змінні.
Джоел Роджерс

@JoelRodgers, чому каскадний характер CSS означає, що "декомпілятори" будуть баггі? (Очевидно, що декомпілятор може бути баггі, але в принципі не важко сказати, чи змінить семантику переупорядкування термінів).
Пітер Тейлор

Я говорю про декларації класів та атрибути. Ви повинні оголосити їх у точно такому ж порядку, інакше у вас будуть різні результати. Помилка, я мав на увазі вкладені правила замість міксинів.
Джоель Роджерс

3

Як щодо пошуку та заміни.

якщо у вас є, color:#ffffffі ви хочете змінити його@color

просто шукайте color:#ffffffабо color : #ffffffзамінюйте @color.

Я зазвичай не довіряю цим інструментам.

або ви можете написати справді простий скрипт PHP, який обробляє його.

Оновлення 1 :
Або ви можете скористатись http://nex-3.com/posts/96-scss-sass-is-a-css-extension, який схожий на менший та має інструмент для перетворення.


Так, я вже про це думав. Але це досить великий файл, тому я хочу переконатися, що це буде найпростішим способом. ;) Подумайте про міксини тощо

або ви можете написати справді простий скрипт PHP, який обробляє його.
fatnjazzy

1
Ви не зможете знайти інструмент, який надійно перетворює чистий CSS у використання МЕНШЕВІ комбінації.
Олексій

Ти правий. Автоматичні змінні та змішування - безглузді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.