Az eszközről
A CSS-minifikáció eltávolítja a szóközöket, a megjegyzéseket és a szükségtelen karaktereket a stíluslapról, hogy csökkentse a méretét, mielőtt megjelenítené a böngészőben. A tényleges szabályok változatlanok: a kicsinyített stíluslap az oldalakat a nem kicsinyített forráshoz hasonlóan jeleníti meg. A megtakarítás az újsorok, a redundáns pontosvesszők, a megjegyzések, a hexadecimális színű gyorsírási lehetőségek és a nulla egység parancsikonok eltávolításából származik (a 0 képpont 0-ra cserélése).
A stílusszabályok tucatjával rendelkező modern webhelyeken a tipikus csökkenés 20–40% a minimálisra csökkentett forráshoz képest. A szerveren a gzip tömörítéssel kombinálva a minimális megtakarítások csökkennek – a gzip már hatékonyan tömöríti az ismétlődő szövegeket –, de a kombináció még mindig felülmúlja a tömörítést, különösen akkor, ha a stíluslapokat gyorsítótárban tárolják, és sokszor szolgálják ki sok látogatónak.
Ez a minifier egyetlen lépésben dolgozza fel a CSS-t, eltávolítja az url() értékeken kívüli megjegyzéseket, összecsukja a szóközöket, eltávolítja a redundáns pontosvesszőket a kapcsos zárójelek bezárása előtt, nulla egységnyi gyorsírást alkalmaz, és ahol lehetséges, a hatjegyű hexadecimális színeket háromjegyűvé alakítja (#ffffff → #fff). A kimenet érvényes CSS marad, amelyet bármely böngésző megfelelően értelmez.
Miért csökkenti a CSS-t?
A kisebb CSS-fájlok gyorsabban töltődnek be, és lecsökken a megjelenítést blokkoló idő, ami mindkettő javítja a First Contentful Paint és a Largest Contentful Paint pontszámokat. Azokon a webhelyeken, ahol a Core Web Vitals befolyásolja a keresési rangsorolást, a megjelenítést blokkoló CSS minden kilobájtja megéri az erőfeszítést.
A sávszélesség-költségek is nagymértékben számítanak. Azok a webhelyek, amelyek több millió oldalmegtekintést szolgálnak ki, mérhető mennyiségű kilépést takarítanak meg, ha stíluslapjaik 30%-kal kisebbek. A CDN-számlák, a mobiladat-használat és az energiafogyasztás mind-mind előnyösebbek. A minimalizálás lényegében ingyenes – egyszeri összeépítési lépés karbantartási költségek nélkül.
Műszaki részletek
A CSS-minifikáció többnyire konzervatív szóközeltávolítás. A kijelölőkön, deklarációkon és értékeken belüli üres hely megmarad, ahol ez jelentős; a külső szóköz összecsukva. A megjegyzéseket eltávolítjuk, hacsak nem /*-al kezdődnek! (licenc megőrzési megjegyzések).
Gyakori billentyűparancsok: 0px, 0em és hasonló nulla egységértékek 0-ra változnak; hatjegyű hexadecimális színek párosított számjegyekkel (#ffffff, #336699) háromjegyűvé válnak (#fff, #369); a } előtti utolsó pontosvessző törlődik. A színnevek nem konvertálódnak automatikusan hexadecimálissá, mert a hex néha hosszabb (a piros rövidebb, mint #f00; az #ff0000 hosszabb, mint a piros).
A kimenetnek minden olyan CSS-ellenőrzőt át kell adnia, amely elfogadja a bemenetet. A böngésző támogatása változatlan – a kicsinyítés nem módosítja magukat a szabályokat, csak azok szöveges megjelenítését.
Gyakran ismételt kérdések
- Mit távolít el a CSS-minifikáció?
- Szóközök (szóközök, tabulátorok, újsorok), megjegyzések (/* ... */), szükségtelen pontosvesszők, redundáns nullák (0,5 → .5), gyorsírási optimalizálás (#ffffff → #fff) és redundáns egységek (0px → 0).
- Biztonságos a minimált CSS használata az éles környezetben?
- Igen. A kicsinyítés megőrzi az összes CSS-szabályt, szelektort és tulajdonságértéket. A kimenet funkcionálisan azonos – a böngészők pontosan ugyanúgy értelmezik. Ez bevett gyakorlat az összes termelési webhelyen.
- Mekkora méretcsökkenésre számítsak?
- Általában 20-50% jól megírt CSS esetén. A bőbeszédű formázású, erősen kommentált kódok nagyobb csökkentéseket eredményeznek. A már kompakt CSS csak 10-15%-kal csökkenhet.
- Ha gzip-et használok, csökkentsem a CSS-t?
- Igen, mindkettő. A Gzip tömöríti az ismétlődő mintákat, míg a kicsinyítés eltávolítja a felesleges karaktereket. Együtt jobb tömörítést biztosítanak, mint külön-külön. A kicsinyített + gzip-csomagolt CSS általában 85-95%-kal kisebb, mint az eredeti.
- Mindig csökkentsem?
- Gyártásra igen. A fejlesztési forrásfájlok esetében nem – az olvasható CSS elengedhetetlen a karbantartáshoz. Futtassa a kicsinyítést az összeállításkor, nem a szerkesztési időben.
- Fel van töltve a CSS-em egy szerverre?
- Nem. A minifier a böngészőjében fut.
- Ez miben hasonlít a cssnano-hoz vagy a csso-hoz?
- A cssnano és a csso PostCSS beépülő modulok éles összeállításokhoz; agresszívebb átalakításokat kínálnak, például a redundáns szabályok összevonását. Ez az eszköz lefedi az alapvető minimalizálást ad-hoc használatra, összeállítási beállítások nélkül.
- A kicsinyítés megtöri a forrástérképeket?
- A kicsinyítés nem generál forrástérképeket; ez az eszköz csak minimális kimenetet produkál. A minimált CSS éles környezetben történő hibakereséséhez generáljon forrásleképezéseket a build részeként.