Css'i less.css dosyasına çeviren bir araç var mı?


21

Daha azına dönüştürmek istediğim oldukça büyük bir CSS dosyam var. CSS'yi yazarken less.css bilmiyordum, ama şimdi hala eski CSS'imi kullanmak istiyorum.

Otomatik olarak dönüştürmeme yardımcı olabilecek bir araç var mı?


düzenlemelerimi aşağıda görüyorum.
fatnjazzy

@ Simone Carletti'nin cevabını kontrol etmeli ve belki biraz ne sorduğunuzu genişletmelisiniz. Dosyanızı yeniden adlandırmanın ötesinde gerçek bir "dönüştürme" işlemi gerekmeyebilir.
Su '

İlginç, ancak CSS dosyalarının boyutunu azaltmak için 33KB JS kodu (less.js) eklemeye değer olup olmadığını merak ediyorum.
Marco Demaio

1
Açıkça JavaScipt derleyicisini kullanmıyorum. Ve CSS'nin boyutu onu kullanmamın nedeni değil. Bakım kolaylığı nedenidir. :)
js-coder

Yanıtlar:



15

Aslında, LESS ile çalışmaya başlamak için herhangi bir dönüştürme aracına ihtiyacınız yoktur. LESS sözdizimi, CSS ile geriye doğru uyumludur . Herhangi bir CSS dosyasının geçerli LESS dosyası olduğu anlamına gelir.

Basitçe CSS'inizi alın ve LESS dosyasına yeniden adlandırın. Ardından, değişikliklerinizle birlikte LESS'e özgü özellikleri kullanın. Dosyayı ne kadar çok güncellerseniz, LESS özelliklerini o kadar fazla kullanabilirsiniz.

Aynısını SCSS ve 10 CSS dosyası ile çok büyük bir proje için yaptım. Tüm CSS'leri SCSS ile yeniden yazmak neredeyse imkansızdı (ve çok fazla zaman kaybı). Basitçe yeniden adlandırdım, sonra her seferinde CSS dosyası üzerinde çalışırken, karışımlardan, değişkenlerden vb. Faydalanmak için kod üzerinde küçük yeniden düzenlemeler yaptım.


Bu gerçekten iyi bir noktaya getiriyor. Şimdiye kadarki cevaplar, sadece mevcut dosyanın LESS iş akışına geçişte kullanılıp kullanılamayacağına değil, sorunun "dönüştür" kısmına odaklanmış gibi görünüyor .
Su '

6

Least'a baktın mı? CSS'yi dönüştürmede Lessify'dan daha iyidir. Özellikle, Lessify sınıflarınızı çok iyi optimize etmiyor. Tarayıcı sıfırlandı, tüm oluşturulan mixin'leri kopyalayarak gereksiz özellikler yarattı. Hala deney aşamasında olduğu açık. Her iki yardımcı program da semantiği belirleyemez, bu nedenle değerleri ifadelere, değişkenlere veya parametrik karışımlara dönüştüremezler.

Least daha iyi bir optimizasyon işi yapar ve daha işlevsel görünmektedir. Hatta sizin için sahte gözlükleri bile kullanıyor:

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

Bu araçlar önceden var olan büyük CSS dosyalarıyla çalışmak için idealdir. CSS'yi LESS'e dönüştürmeyi önerdiğim adımlar: (Orijinal CSS dosyalarının bir kopyasını sakladığınızdan emin olun):

  1. Birkaç ek CSS dosyasıyla çalışıyorsanız, bunları tek bir CSS dosyasına birleştirin. Bu, her şeyin LESSied ve birlikte optimize edilmesini sağlar.

  2. Elde edilen CSS kodunu çevrimiçi bir CSS temizleme yardımcı programı ile çalıştırın. Cleancss ile iyi sonuçlar aldım: http://www.cleancss.com/ . Bu, LESS dönüştürücü tarafından yakalanmayan yabancı ve gereksiz işaretlemeleri kaldıracaktır.

  3. @Media'yı ve CSS dosyasındaki tüm stil sıfırlamalarını kaldırın. Sorun yaratabilir veya olası fazlalıklar getirebilir. Sıfırlamaları ayrı bir dosyada tutmak muhtemelen iyi bir fikirdir.

  4. Elde edilen CSS dosyasını Least'e yapıştırın ve canavarı izleyin.

  5. Sıfırlamalarınızı ve @ ekranınızı yeniden tanıtın.

  6. Artık işiniz bitti, niteliklerin her birini inceleyin ve yeniden düzenleme için iyi adaylar bulun ve bunları LESS değişkenlerine ve ifadelerine dönüştürün. CSS color ve font nitelikleri, hesaba katılması en kolay olanlarıdır, basit genel arama ve değiştirme işleri iyidir. Sonunda, tek dosyayı daha küçük mantıksal dosyalara bölmek isteyip istemediğinize karar verebilirsiniz. İşlemin, dosyalarınızı farklı bir şekilde yeniden düzenlemenize neden olduğunu görebilirsiniz.

Ben Least'ın yazarı değilim, sadece benzer bir araç arayan biri ve dünyaya anlatmaya karar verdim.


Bu dönüştürücüler anlamıyor @importmu? @importLESS dosyalarınız derlendiğinde LESS'in ifadeleri ayrıştırıp tüm stil sayfalarınızı tek bir CSS'de birleştirebileceğini düşündüm . Düzenli bir şekilde düzenlenmiş CSS'nizi LESS'e dönüştürmek için tek bir dev stil sayfasına boşaltmak gibi görünüyor, bakım için geriye doğru bir adım olacaktır.
Lèse majesté

Varlar, ancak bu araçların çevrimiçi olduğunu aklınızda bulundurun, böylece onları bir metin alanına kesip yapıştırmanız gerekir, böylece dış stil sayfalarınıza erişemez.
Joel Rodgers

Ah, aslında bağlantıları tıklatmadım. Masaüstü araçları olduklarını sanıyordum. O zaman mantıklı geliyor.
Lèse majesté

5

Bir dönüştürücünün, kodun çoğuyla ne yapmak istediğinizi bilmesinin bir yolu olduğunu sanmıyorum.

Örneğin, hangi değişkenleri kullanmak istediğinizi bilmeniz gerekmez. Veya karışımların veya fonksiyonların nasıl üretileceği.

Sanırım bununla manuel olarak yapmanız gerekecek.


Kabul. Burada, bilgisayarların çok uygun olmadığı durumlarda, ihtiyaç duyduğunuz belli bir çıkarım ve bilgi var. Bazı görevleri otomatik hale getirebileceksiniz (@dotweb adresindeki bağlantıya bakınız) ve renk değerleri gibi şeyleri tek bir değişkende birleştirebilirsiniz, ancak bu muhtemelen onunla ilgilidir.
Su '

Evet, fakat LESS’ten CSS’ye dönüşüm 1 - 1 dönüşüm arasındadır, bu yüzden teorik olarak CSS’den optimize edilmiş LESS kodu oluşturabilecek bazı algoritmalar vardır.
trusktr

Karışımlar her iki yönde de gidebilir, çünkü bilgisayarın seçicileri bir araya getirmesi ve gruplandırması ve iç içe geçirmesi kolaydır. Neyse ki, bu dönüşümün en sıkıcı kısmı ve hesaplanabilir (cevabımı görün). Ne olursa olsun, CSS’nin basamaklı yapısı göz önüne alındığında, orijinal CSS’den farklı olarak görüntülenebilir. Değişkenler ve ifadeler imkansızdır. Bilgisayarlar niyet veya semantiği belirleyemez. Bir bilgisayar bu genişliği nasıl bulabilir: CSS'deki 400 gerçekte genişlik: sayfa genişliği / LESS'te 2? Bir dönüştürücünün renkleri ve yazı tiplerini değişkenlere dönüştürmesi mümkün olabilir.
Joel Rodgers

@JoelRodgers, neden CSS'nin basamaklı doğası "decompilers" in buggy olacağı anlamına geliyor? (Açıkçası, bir kod çözücü buggy olabilir, ancak prensipte, terimlerin yeniden sıralanmasının anlambilimi değiştirip değiştirmeyeceğini söylemek zor değildir).
Peter Taylor

Sınıf beyanları ve niteliklerinden bahsediyorum. Bunları aynı sırada bildirmeniz gerekir, aksi takdirde farklı sonuçlar elde edersiniz. Kötü bir hata, mixins yerine iç içe kurallar demek istedim.
Joel Rodgers

3

Ara ve değiştir.

varsa color:#ffffffve değiştirmek istiyorsanız@color

sadece arayın color:#ffffffveya color : #ffffffile değiştirin @color.

Genelde bu araçlara güvenmiyorum.

ya da onu ele gerçekten basit bir PHP betiği yazabilirsiniz.

Güncelleme 1 :
Veya daha azına benzeyen ve dönüştürücü aracı olan http://nex-3.com/posts/96-scss-sass-is-a-css-extension kullanıcılarını kullanabilirsiniz .


Evet, bunu zaten düşündüm. Ama oldukça büyük bir dosya, bu yüzden emin olmak istiyorum, bu en kolay yol olacak. ;)

ya da onu idare eden gerçekten basit bir PHP betiği yazabilirsiniz.
fatnjazzy

1
Saf CSS'yi güvenilir bir şekilde LESS karışımlarını kullanmaya dönüştüren bir araç bulamazsınız.
Alex,

Haklısın. Otomatik değişkenler ve karıştırma anlamsızdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.