Ho testato alcuni compressori CSS e, ad essere sincero, sono deluso. Forse ho appena provato quelli sbagliati?Esistono compressori CSS davvero intelligenti?
Punto di partenza è stato il seguente, intenzionalmente male css-code:
.a{
font-size: 10px;
padding: 0 6px;
text-align: center;
}
.b{
font-size: 11px;
padding: 0 6px;
text-align: center;
}
che è, abbastanza evidente, senza senso nel dichiarare 2 di 3 oggetti di entrambe le classi e si traduce in 185 byte di codice. Se si scrive meglio manualmente sarebbe simile
.a, .b{
padding: 0 6px;
text-align: center;
}
.a{
font-size: 10px;
}
.b{
font-size: 11px;
}
, che è un po 'più piccole (149 byte) o addirittura
.a, .b{
padding: 0 6px;
text-align: center;
font-size: 10px;
}
.b{
font-size: 11px;
}
che è 133 byte prima e
.a,.b{padding:0 6px;text-align:center;font-size:10px}.b{font-size:11px}
solo 71 byte dopo la compressione. Questo sarebbe 100/185 * 71 = 38,3% della dimensione originale.
Che tutti compressioni fatto però era:
.a{font-size:10px;padding:0 6px;text-align:center}.b{font-size:11px;padding:0 6px;text-align:center}
che è 100 byte.
Naturalmente, in un mondo ideale dovresti scrivere codice CSS migliore nella prima mano, ma non è facile se scrivi file più grandi e quasi impossibile se utilizzi qualsiasi framework.
Quindi, ci sono strumenti migliori là fuori che risultano in qualcosa come 71 byte per il codice di esempio sopra?
Tale strumento sarebbe terribilmente complicare di scrivere ed i suoi bug può potenzialmente rovinare la vostra CSS in modo difficile da individuare - immagino che qualcuno ne abbia scritto uno. –
Sono d'accordo. Mentre il tuo esempio è piuttosto semplice e diretto, immagina un file CSS con centinaia di classi definite in cui ogni proprietà è condivisa da due o più classi. Non credo che ciò porterebbe a un file CSS significativamente più piccolo. – Paul
Per aggiungere complessità, l'ordine delle regole è importante per le sostituzioni in CSS. Spostare elementi in un file CSS senza influire sul risultato non è un compito facile. –