CSS küçültücü için herhangi bir öneriniz var mı? [kapalı]


289

CSS küçültücü için herhangi bir öneriniz var mı?

Google'da kök salmış olacağım ve biraz deneyeceğim, ancak akıllı, yetkin ve merakla yakışıklı StackOverflow topluluğunun zaten ağır ağırlıkların artılarını ve eksilerini değerlendirmiş olabileceğinden şüphelendim.



20
Paçayı ele vermek. 'Nasıl arkadaş olunur, insanları nasıl etkilerim' yazıyorum. Yine de yeterince yakın değil .
Paul D.Waite

17
Siz hepiniz garipsiniz. Akıllı, yetkin ve merak uyandırıcıyız.
Chuck Le Butt


3
Sadece buradaki şeylerin 'değişen doğasını' anlamak ve bu gibi soruları kapatma nedenini anlamak ve açıklamak için - sizinkine rağmen! ;)
Andrew Barber

Yanıtlar:


98

YUI Kompresör harika. JavaScript ve CSS üzerinde çalışır. Bunu kontrol et.


4
Buna ek olarak, YUI Kompresörünü indirecek, dosyalarınızı paketleyecek ve minimize edecek bir Makefile. github.com/balupton/jquery-sparkle/blob/…
balupton


@ JuniorMayhé Kullandım ve "Yalnızca küçült, sembol gizleme yok" seçeneğini işaretlememe rağmen stillerim tamamen karıştı. seçenek) ... ne yazık ki denediğim her madenci her zaman stillerimi kırıyor. Online minifers hepsi bok olduğu için mi? Bu şekilde olmamalı.
dialex

1
@DiAlex Birçoğunun kodumuzla uğraştığını anlıyorum, bunları dikkatli bir şekilde kullanmalıyız, agresif yeniden faktoringi değil her zaman "muhafazakar" bir yaklaşım seçmeliyiz. Muhafazakar sadece gereksiz boşlukları, sondaki noktalı virgülleri, yinelenen stilleri vb. Kaldırmak olacaktır. Ben css kodu içinde bazı css kesmek kullanırsanız bir stil bu minifiers tarafından kolayca zarar görebilir düşünüyorum. Ters eğik çizgiler ve tuhaf semboller kompresörü çıldırtabilir.
Junior Mayhé

Çevrimiçi hizmet deneyebilirsiniz zbugs.com - dosyalarınızı küçültmek için yui kompresör kullanır.
Tamik Soziev

45

YUI Kompresörün bir .NET portu da var :

  • Minimize / dosya birleştirmeyi derleme sonrası olaylara entegre etme
  • bir TFS Derlemesine entegre edin (CI dahil)
  • sadece kendi kodunuzda dll kullanmak istiyorsanız (örn. anında küçültme).

GÜNCELLEME 2011: Ve şimdi NuGet aracılığıyla da mevcut :)


Biraz kafam karıştı. YUI Kompresörü, UglifyJS ( demo ) lehine kullanımdan kaldırıldı . Bir .NET bağlantı noktasında çalışmak mantıklı mı?
Martin Vseticka

Dostum. O limana 2008 yılında başladım. 6 yıl önce. Ben de bu cevabı '09'da yayınladım. Aptal q'lara sormadan önce lütfen tarihleri ​​kontrol edin ve bir bağlam elde edin. Şimdi dışarı çıkın ve bir çiş biraz oynayın :)
Pure.Krome

Pure.Krome: Farklı olmaya yalvarıyorum. GitHub repo'suna baktım ve birkaç aylık ve taahhütler bu yıl. Bu yüzden sordum. "Dostum".
Martin Vseticka

: yavaş alkış: iyi tespit! aslında haklısın --- oh. Bekle. Projeyi codeplex : yuicompressor.codeplex.com'da başlattım . İlk taahhüt 7 Temmuz 2008 ( yuicompressor.codeplex.com/SourceControl/changeset/… ). Sonra bu yıl GH'ye taşındı . Ben uzun bir süre boyunca onu taşımak için herhangi bir iş yapmadım. Burada ve orada sadece birkaç garip hata düzeltmesi yapıldı. Yani. Kanka. Ben ED bağlantı noktası . Liman değil ing bunu. Bakım modunda. QED
Pure.Krome

1
Siz de :) Ve UglifyJS bağlantısı için şerefe - bu, işte kullanıp kullanamayacağımızı görmek için kontrol etmek istediğim bir şeydi - ve bize bunu hatırlattınız! şerefe :)
Pure.Krome

19

Minify'ı seviyorum . PHP'de ve CSS veya JavaScript ile çalışır.


2
Küçült için +1. PHP'yi zaten biliyorsanız, onu yüklemek daha rahat olabilir. PHP5 gerektirir. Bir kez kurduktan sonra unutabilirsiniz, istediğiniz kadar süper beyaz aralıklı ve yorumlanmış css veya js dosyalarında normal olarak çalışın ve küçültün onları anında sıkıştırır.
Mahalie

13

CSSO şu anda en iyi minifier / optimizer.


2
"En iyi" hakkında Dunno, ama bir göz atmaya değer.
Paul D.Waite

Sadece deneyin ve en iyisi olduğunu göreceksiniz. Bildiğim gibi, şu an için küçültme teknikleri için analoglar yok.
sessiz

1
tamam, CSSO'yu 30 KB'lık bir test dosyasında YUI Kompresörü ile karşılaştırdım ve her iki aracın sıkıştırılmış çıktısını gzipledikten sonra CSSO, dosyayı fazladan 7 bayt ile sıkıştırdı. Tabii ki bu sadece bir test dosyası.
Paul D.Waite


En azından Google PageSpeed ​​Insights tarafından önerilen ikisinden biri .
Alex Vang

8

Python kullanıyorsanız , muhtemelen YUI Kompresör kadar hızlı olmayan daha ince tavsiye ederim ama csscompressor.net aksine CSS kesmek boğmaz.

Daha ince yazdığım için önyargılıyım ve şu anda saldırıları nasıl ele aldığını görmek için YUI Kompresörü değerlendiriyorum. Crosstips.org kaynağını görüntülerseniz, daha ince bir eylem örneği görülebilir



6

Çevrimiçi bir araç arıyorsanız, şunu deneyin: https://csscompressor.net/


1
Keşke bu cevabı aşağıya oylayabilseydim (bunu iptal ettikten sonra çok geç). Css'imi sıkıştırmaya çalışıyorum ve bazı şeyleri bozuyor. Bu hiç de iyi değil. Dışarıdaki herkese uyarı, sanırım bozulmamış standartlara uygun css yoksa, bok kırmak olabilir!
BT

19
Ama olmamalı Eğer uyumlu CSS bozulmamış, standartlara sahip?
Chuck Le Butt

2
HTML5 kaynatma plakası kullanıyorsanız, hayır.
SkaveRat

Güzel bir araç. Ben test ettik html{width:100%;height:100%;} body{width:100%;height:100%;padding:0;} #test{padding:1em;width:10em;} #test{padding:2em;}ve YUI Kompresör (# testin dolgu için kopyaları ortadan kaldırmadı) daha iyi bir iş yaptı. Yine de, her ikisi de beni tatmin etmeyi başaramadı html,body{width:100%;height:100%}body{padding:0}(bu, her iki seçicinin de aynı özgünlüğe sahip olması nedeniyle eşdeğerdir).
drdaeman

CSS, berbat korsanların bazen kabul edilebilir olduğu tek şeydir. Bu hack'lerden bazıları, kastın kırılabileceği garip yorum hileleri kullanıyor.
Brandon

4

Ben C # ultra hızlı bir CSS minifier yazdım. Algoritma Javascript'i kullanmıyor. Bunlar: http://www.ko-sw.com/Blog/post/An-Ultra-Fast-CSS-Minify-Algorithm.aspx .


Güzel seçenek. Ancak bir sorgu: “CSS belirtimine göre, iki tür dize desteklenir: tek tırnaklı ve çift tırnaklı. İçimde boşluk karakterleri bulunsa bile, algoritmam dizeyi olduğu gibi bırakıyor ... Ben sadece dizeyi değiştirmeden tutmanın daha sezgisel ve profesyonel olduğunu düşünüyorum. ” Çıktı dosyasını olabildiğince küçük yapmak için kesinlikle anlam eklemeyen boşluk karakterleri kaldırılmalıdır. Minimizasyon noktası bu değil mi?
Paul D. Waite

3
Bence bu genel bir durumda kesinlikle doğru. Ama dizeleri özel bir durum olarak görüyorum. Dizelerden anlamsız boşlukların kaldırılıp kaldırılmaması orijinal CSS'nin geliştiricisine bağlıdır. Gösterdiğim algoritma, dizeyi değiştirmeden tutan spesifikasyonu takip ediyor.
Kerido

4

Kapatma stil sayfalarını deneyin .

Yanında küçültme o da destekler tüylenme , RTL çevirme ve sınıf yeniden adlandırılması .

Ayrıca CSS'ye değişkenler , işlevler , koşullu koşullar ve karışımlar ekleyebilir.

Ayrıca, bu özelliklerin bazılarının ( tek başına çok güçlü olan) Kapatma Araçlarının geri kalanına bağlı olduğunu unutmayın .


pencerelerde nasıl kullanıyorsun? cehaletimi affet
user2513846

3

PHP bir şey arıyorsanız, bağlantı:

Yağsız Küçült

PHP Fat-Free Framework'ün bir parçası olmasına rağmen, tek başına da kullanılabilir.


Yağsız Çerçeve GPL olduğunu ve bu nedenle kodlarının bu kısmının da olduğunu varsayalım. Sadece bir kafa.
CodeReaper

Hatalar var: Kötü bir fikir.
brunoais

3

İsnoop'un CSS SuperScrub'unun çok iyi çalıştığını görüyorum . Ancak sadece CSS'ye doğrudan bağlantıları doğrudan işleyebilir: / Css kodunu tutmak için tercih ettiğiniz macun hizmetini kullanarak ve sadece SuperScrub'a ham bağlantı vererek bunu çözebilirsiniz.


Ben denedim #test { padding: 1em; width: 10em; } #test { padding: 2em; }ve başarısız oldu.
drdaeman

@drdaeman Muhtemelen belirli bir seçici için çakışan / yinelenen değerlerle ne yapacağını bilmediği için. SuperScrub'u korumadığım için, bunun ne zaman düzeltileceğini veya düzeltileceğini söyleyemem.
John Michel



3

Diğerleri YUI Compressor'dan, daha sonra .NET portundan bahsetti ve zincire başka bir bağlantı ekleyeceğim. StyleManager , YUI Compressor'ın .NET portunu saran bir sunucu kontrolüdür, böylece ScriptManager'ı kullanmaya alışkın olduğunuz gibi kullanabilirsiniz. CSS sabitleri, arka plan görüntüsü tanımlarınızda tilde (~) çözünürlük vb.Gibi diğer birçok güzel özelliği de ekler. o bir sorun. Bir göz atın - gStyleManager.com


3

Hala "beta sürümünde", ancak oldukça iyi çalışması gerekir. Her projede arkasındaki kodu kullanıyorum: http://claudiu.phpfogapp.com/ PHP'de yerleşiktir ve ayrıca * .css dosyanızı oldukça büyük bir süre için barındırır, elbette kodunuzu test etmenize izin verecek kadar küçültülmüş css. (Yalnızca sunucuda yer kaplarsa eski css dosyalarını silerim).


2

CSS ve JS dosyalarını küçülterek ve sıkıştıracak .net web sitelerine bağlanacak bir codeplex projesi var. Microsoft AJAX Minifier ve YUI Kompresörü arasında, YUI'nin biraz daha iyi çıktığını gösteren bir karşılaştırma da var. Microsoft Minifier ve dosyayı büyük ölçüde sıkıştıran sıkıştırmayı birleştiren ek bir varyasyon var.

Her neyse, bağlantı http://xpedite.codeplex.com/wikipage?title=Minifier%20(CSS%2FJavaScript%20Minification%20Handlers )




1

C # örneği:

css = css.Replace("\n", "");
css = Regex.Replace(css, @"\s+", " ");
css = Regex.Replace(css, @"\s*:\s*", ":");
css = Regex.Replace(css, @"\s*\,\s*", ",");
css = Regex.Replace(css, @"\s*\{\s*", "{");
css = Regex.Replace(css, @"\s*\}\s*", "}");
css = Regex.Replace(css, @"\s*\;\s*", ";");

1

zbugs.com sizin için iyi bir çevrimiçi araç olacak, tek bir tıklamayla css'nizi minimize edecek


Tabii ki, onları başlatmak için birden fazla tıklama gerektiren birçok minimizer olduğunu düşünmüyorum.
Paul D.Waite

Haklısın Paul :) ama bu çok daha az sonra sadece küçültmek ve hepsi tek bir tıklama ile
Tamik Soziev

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.