Przetestowałem niektóre sprężarki CSS i szczerze mówiąc, jestem rozczarowany. Może po prostu wypróbowałem niewłaściwe?Czy są naprawdę sprytne kompresory CSS?
Punkt wyjścia był następujący, celowo źle css-code:
.a{
font-size: 10px;
padding: 0 6px;
text-align: center;
}
.b{
font-size: 11px;
padding: 0 6px;
text-align: center;
}
który jest dość oczywiste, nonsens w deklarowania 2 z 3 właściwości w obu klasach i wyniki w 185 bajtów kodu. Jeśli piszesz to lepiej ręcznie to będzie wyglądać
.a, .b{
padding: 0 6px;
text-align: center;
}
.a{
font-size: 10px;
}
.b{
font-size: 11px;
}
który jest nieco mniejszy (149 bajtów) lub nawet
.a, .b{
padding: 0 6px;
text-align: center;
font-size: 10px;
}
.b{
font-size: 11px;
}
czyli 133 bajtów przed i
.a,.b{padding:0 6px;text-align:center;font-size:10px}.b{font-size:11px}
tylko 71 bajty po kompresji. Byłoby to 100/185 * 71 = 38,3% pierwotnego rozmiaru.
Co wszystkie uciski nie był jednak:
.a{font-size:10px;padding:0 6px;text-align:center}.b{font-size:11px;padding:0 6px;text-align:center}
który wynosi 100 bajtów.
Oczywiście w idealnym świecie wystarczy napisać lepszy kod CSS z pierwszej ręki, ale to nie jest łatwe, jeśli piszesz większe pliki i prawie niemożliwe, jeśli używasz jakichkolwiek frameworków.
Czy są jakieś lepsze narzędzia, które dają np. 71 bajtów dla powyższego przykładowego kodu?
Takie narzędzie byłoby strasznie komplikować napisać i jego błędy potencjalnie mogą zrujnować CSS w trudny do zauważenia sposób - myślę, że ktoś napisał. –
Zgadzam się. Chociaż twój przykład jest dość prosty i prosty, wyobraź sobie plik CSS zawierający setki zdefiniowanych klas, w których każda właściwość jest współdzielona przez dwie lub więcej klas. Nie do końca wierzę, że spowoduje to znacznie mniejszy plik CSS. – Paul
Aby dodać do złożoności, kolejność reguł jest ważna dla przesłonięć w CSS. Przenoszenie elementów w pliku CSS bez wpływu na wynik nie jest łatwym zadaniem. –