CSS Minifier

Developer

Paliitin ang stylesheet nang hindi nababago ang tinatamaan nito.

Pinaliit na CSS
/*! (c) 2026 Example — licence notice, kept */ .card .title{color:#abc;margin:0 .5em;width:calc(100% - 20px)}.card>.body{padding:8px}.card::after{content:"two spaces"}
72 bytes ang natipid — 29.8% na mas maliit
Dati242 B
Ngayon170 B
Natipid29.8%
Ano ang ginawa
Komentong inalis1
Komento ng lisensyang pinanatili1
Byte bago242
Byte pagkatapos170
Walang inilipat ng puwesto o pinagsama. Nananatiling dalawa ang dalawang rule na may parehong selector, at hindi nagbabago ang pagkakasunod ng mga declaration — nakasalalay rito ang cascade, at ang minifier na naglilipat ng puwesto ay nagsusulat muli ng stylesheet mo sa halip na paliitin ito.
Pinanatili ang mga espasyo sa loob ng calc, clamp, min at max. KAILANGAN ang mga ito roon: valid ang calc(100% - 20px) at hindi ang calc(100%-20px), dahil babasahin ang -20px bilang signed length sa halip na pagbabawas.
1 komento ng lisensya na nagsisimula sa /*! ang pinanatili. Iyan ang matagal nang kumbensyon para sa paunawang dapat makaligtas sa minification, at ang pag-alis nito sa stylesheet na may lisensya ang tanging pagbura rito na may legal na kahihinatnan.
Iniwan nang eksakto ang tekstong nasa loob ng quotes, pati ang mga espasyo. Binabago ng minifier na nagpipiga ng whitespace kahit saan ang talagang ipinapakita ng content property.

Paano gamitin

Para saan ito

Paliitin ang stylesheet para mas mabilis mag-load ang web page, sa pag-alis ng mga espasyo, line break at komentong tao lang ang nangangailangan — nang hindi binabago ang itsura ng pahina.

Bago magsimula

Ihanda ang CSS — ang code na nagtatakda ng kulay, laki at ayos ng web page — kinopya mula sa .css file o style block. Sa browser mo ito pinaliliit at walang ipinapadala kahit saan.

  1. I-paste ang stylesheet

    Palitan ng sarili mong CSS ang sample sa Stylesheet.

  2. Piliin ang paiikliin

    Naka-tsek ang tatlong kahon sa simula, at bagay iyon sa karamihan. Pinapanatili ng Panatilihin ang /*! na komento ng lisensya ang copyright notice na nagsisimula sa /*!. Ginagawang #abc ng Paikliin ang hex na kulay ang #aabbcc, at ginagawang 0 ng Paikliin ang sero at desimal ang 0px at .5 ang 0.5. Alisin lang ang tsek kung kailangan ng ginagamit mo ang mas mahabang anyo.

  3. I-minify at kopyahin

    Pindutin ang I-minify. Nasa band sa itaas ng card ang resulta — nagbabago rin ito habang nagta-type ka — at inilalagay ito ng Kopyahin sa clipboard mo. Itago ang orihinal mong file para sa pag-edit, at ang pinaliit na kopya ang gamitin sa live na site.

  4. Tingnan ang ginawa

    Binibilang ng Ano ang ginawa sa ibaba ang mga komentong inalis at pinanatili, at ang laki bago at pagkatapos. Sinasabi ng mga note sa ilalim nito kung ano ang sinadyang hindi galawin.

Pagbasa ng resulta

  • Pinaliit na CSS: ang stylesheet na inalisan ng lahat ng hindi kailangan ng browser, handa nang kopyahin.
  • Dati at Ngayon: ang laki ng stylesheet mo at ng resulta, sa byte (B).
  • Natipid: gaano kaliit ang resulta, bilang porsiyento. Ibinibigay ng linya sa itaas nito ang parehong tipid sa byte.

Kung may problema

  • May naiwang espasyo, gaya sa .a .b o sa loob ng calc(): kailangan ito roon. Kapag inalis, magbabago kung aling bahagi ng pahina ang tatamaan ng rule, o masisira ang kuwenta.
  • Halos 0% ang Natipid: malamang na pinaliit na ang stylesheet, kaya kaunti na lang ang maaalis.
  • Para sa CSS lang ito. Huwag ipadaan dito ang JavaScript — ibang klase ng tool ang kailangan niyon.

Ano ito

May tatlong lugar kung saan mahalaga ang espasyo sa CSS, at bawat isa ay paraan ng pagkasira ng stylesheet.

Ang bare space ay descendant combinator. Ang .a .b ay tumutugma sa .b sa loob ng .a; ang .a.b ay tumutugma sa elementong may dalawang klase. Ang pagtanggal ng espasyong iyon ay nagbabago kung aling elemento ang tinatamaan.

Sa loob ng panipi, ang content: "a  b" ay may dalawang espasyo na lumalabas sa pahina.

At sa calc(), kailangan ang espasyo: wasto ang calc(100% - 20px) at hindi ang calc(100%-20px), dahil mababasang may-tandang haba ang -20px at hindi pagbabawas.

Walang pinagsasama o inaayos ang pagkakasunod. Nakasalalay sa pagkakasunod ang cascade.

Mga tanong

Bakit walang JavaScript minifier dito?

Dahil ibang antas ng problema ito. Kailangan ng tunay na parser sa pagpapaliit ng JavaScript — pagsusuri ng scope, awtomatikong paglalagay ng semicolon, pagkilala sa regular expression laban sa paghahati — at ang 95% na tama ay tahimik na sumisira sa script ng iba. Walang katumbas na bitag ang CSS: patag ang balarila, walang saysay ang espasyo maliban sa ilang malinaw na lugar, at lokal ang bawat pagbabago dito.

Bakit nanatili ang espasyo sa pagitan ng mga selector ko?

Dahil ang hubad na espasyo ay descendant combinator, at may kahulugan ito. Ang “.a .b” ay tumutugma sa .b na nasa loob ng .a; ang “.a.b” ay tumutugma sa elementong may dalawang klase. Ang pagtanggal sa espasyong iyon ay nagbabago kung aling elemento ang tinatamaan ng panuntunan — ito ang pinakamapaminsalang ginagawa ng pabayang CSS minifier. Tinatanggal ang espasyo sa paligid ng >, + at ~, dahil malinaw ang mga combinator na iyon.

Bakit hindi ginagalaw ang mga espasyo sa calc()?

Dahil kailangan sila. Wasto ang calc(100% - 20px) at hindi ang calc(100%-20px) — kapag walang espasyo, ang -20px ay nababasang haba na may tanda at hindi pagbabawas, at ibinabagsak ng browser ang buong deklarasyon. Ganoon din sa loob ng clamp, min at max.

Tatanggalin ba nito ang aking licence header?

Hindi kung nagsisimula ito sa /*! — matagal nang kumbensiyon ang anyong iyon para sa komentong kailangang makaligtas sa pagpapaliit, at ginagalang ito ng bawat minifier. Ito ang iisang pagtanggal dito na may bunga sa batas, kaya pinapanatili ito bilang default at sinasabi ng pahina kapag may pinanatili ito. Tinatanggal ang karaniwang /* na komento.

Pinagsasama ba nito ang doblehing panuntunan para makatipid pa?

Hindi, sinasadya. Nakasalalay sa pagkakasunod ang cascade — ang dalawang panuntunang may parehong selector ay ipinapatong nang sunod-sunod, at nananalo ang huling deklarasyon. Ang minifier na nagsasama o nag-aayos muli ay isinusulat na muli ang stylesheet mo at hindi pinapaliit, at hindi sulit ang dagdag na tipid sa uri ng bug na dulot nito.

Paano naman ang teksto sa content property ko?

Iniiwan itong eksaktong gaya ng dati, espasyo at lahat. Ang content: "a b" ay nagpapakita ng dalawang espasyo, kaya ang pagpiga sa espasyo sa loob ng string ay nagbabago ng lumalabas sa pahina. Hindi rin pinapaikli ang hex na kulay sa loob ng string, sa parehong dahilan.

Ang komputasyon

Anong espasyo ang nananatili
.a .bnananatili — descendant
.a > .btinatanggal — tahasan
calc(100% - 20px)nananatili — kailangan
content: "a  b"nananatili — nilalaman
Bakit walang JavaScript minifier

Ang pagpapaliit ng JavaScript ay nangangailangan ng tunay na parser — scope analysis, automatic semicolon insertion, ang pagkakaiba ng regex at paghahati. Ang 95% na tama doon ay tahimik na sumisira ng script. Walang ganoong bitag ang CSS.

Ituloy pa

Mahalaga

Runs entirely in your browser; nothing is transmitted. Nothing is reordered or merged — the cascade depends on order. Licence comments beginning with an exclamation mark are kept by default. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.