Ich habe einige CSS-Kompressoren getestet und um ehrlich zu sein bin ich enttäuscht. Vielleicht habe ich einfach die falschen ausprobiert?Gibt es wirklich clevere CSS-Kompressoren?
Ausgangspunkt war der folgende, absichtlich schlecht CSS-Code:
.a{
font-size: 10px;
padding: 0 6px;
text-align: center;
}
.b{
font-size: 11px;
padding: 0 6px;
text-align: center;
}
das ist ziemlich offensichtlich, Unsinn in deklarieren 2 von 3 Eigenschaften in beiden Klassen und die Ergebnisse in 185 Byte-Code. Wenn Sie es besser schreiben manuell würde es aussehen
.a, .b{
padding: 0 6px;
text-align: center;
}
.a{
font-size: 10px;
}
.b{
font-size: 11px;
}
, die etwas kleiner (149 Bytes) oder sogar
.a, .b{
padding: 0 6px;
text-align: center;
font-size: 10px;
}
.b{
font-size: 11px;
}
, die vor 133 Bytes ist und
.a,.b{padding:0 6px;text-align:center;font-size:10px}.b{font-size:11px}
nur 71 Bytes nach der Komprimierung. Dies wäre 100/185 * 71 = 38,3% der ursprünglichen Größe.
Was alle Kompressionen jedoch tat, war:
.a{font-size:10px;padding:0 6px;text-align:center}.b{font-size:11px;padding:0 6px;text-align:center}
, die 100 Bytes ist.
Natürlich würden Sie in einer idealen Welt einfach besser CSS-Code aus erster Hand schreiben, aber das ist nicht einfach, wenn Sie größere Dateien schreiben und fast unmöglich, wenn Sie irgendwelche Frameworks verwenden.
Also, gibt es irgendwelche besseren Werkzeuge da draußen, die in etwas wie 71 Bytes für den obigen Beispielcode resultieren?
Ein solches Werkzeug würde komplizieren werden schrecklich zu schreiben und seine Fehler können möglicherweise Ihre CSS ruinieren auf schwer zu erratende Weise - ich schätze, jemand hat einen geschrieben. –
Ich stimme zu. Während Ihr Beispiel ziemlich einfach und geradlinig ist, stellen Sie sich eine CSS-Datei mit Hunderten von definierten Klassen vor, wobei jede Eigenschaft von zwei oder mehr Klassen geteilt wird. Ich glaube nicht, dass dies zu einer wesentlich kleineren CSS-Datei führen würde. – Paul
Um die Komplexität zu erhöhen, ist die Reihenfolge der Regeln wichtig für Überschreibungen in CSS. Dinge in einer CSS-Datei zu verschieben, ohne das Ergebnis zu beeinflussen, ist keine leichte Aufgabe. –